创建 for 循环以删除嵌套列表中的元素

Creating a for loop to delete elements in a nested list

我的程序中有一个嵌套循环,它是这样的:

x = [[a, 1, 2, 3, 4, 5], [b, 6, 7, 8, 9, 10], [c, 11, 12, 13, 14, 15]]

我尝试创建一个 for 循环以从整个 x 列表中的每个嵌套列表中删除第一个元素 (a、b、c)。它是这样的:

for i in x:
   del x[i][[0]

这对我不起作用。我假设如果我有 'x[i][0]' i 值将使 for 循环遍历整个 x 列表中的每个元素,并且 [0] 值将允许 python 删除列表中的 0 元素.

您正在循环已经在 for 循环中的元素。 'i' 将是内部列表。

x = [['a', 1, 2, 3, 4, 5], ['b', 6, 7, 8, 9, 10], ['c', 11, 12, 13, 14, 15]]

for i in x:
   del i[0]

# print(x)
# [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15]]

i的值是循环中列表x的元素。如果你想获得元素的索引,你可以使用:

for i in range(len(x)):
    print(x[i])

据我了解,您要查找的结果是:[[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15]]

如果您运行以下代码:

for i in x:
    print(i)

您将在新行中获取 x 的每个元素,首先是 [a, 1, 2, 3, 4, 5],然后是 [b, 6, 7, 8, 9, 10],依此类推。这是因为当你像这样迭代时 for i in xix(列表)的值,而不是它的索引。

您有两种方法可以消除每个列表的第一项。

  1. 遍历每个列表并删除它的第一个元素。因此,对于 x 中的每个列表元素 i,您删除 i[0]

    for i in x:
        del i[0]
    
  2. 使用 range(len(x)) 遍历列表的索引。 range(len(x)) 是从 0len(x)-1 的值列表,因此 i 现在将对应于 x.

    中所有元素的索引
    for i in range(len(x)):
        del x[i][0]
    

这将为您提供所需的结果。