在这个Python片段中:
l = [10,20,30,40,50]
for i in l:
l.remove(i)
print(i)
print(l)
输出结果为:
10
30
50
[20, 40]
Python中的这种行为需要几个小时来调试。 " for ... in ..."实际上工作?
答案 0 :(得分:2)
'i'将获取l列表中每个元素的值。所以输入for i in l
我将首先成为第一个索引,在这种情况下为10,然后执行下面的代码,这将从列表中删除i,所以现在你的列表是[20,30,40,50]
它打印我..这是10然后它跳到下一个索引l [1],现在是30,并执行代码。
答案 1 :(得分:2)
作为@A。 Lau已经提到,在for
循环的第二次迭代中,i
将被编入索引作为l
的第二个元素,因此l[1]=30
将被分配给i
}。
如果你真的想删除for循环中的元素,你可以试试这样的东西:
l = [10,20,30,40,50]
for i in l[:]:
l.remove(i)
print(i)
print(l)
结果将是:
10
20
30
40
50
[]