我试图修改包含超过一百行代码的循环函数。
如果我在python中有一个遍历列表的循环,为什么for item in list:
循环只完成了一半?在弹出所有项目之前,它不应该继续循环吗?
例如,如果我有这个清单:
l1 = [1,2,3,4,5,6]
for item in l1:
l1.pop(0)
print l1
无论列表包含多少项,只有在弹出列表的50%时才会完成:
上面的代码输出:
[2, 3, 4, 5, 6]
[3, 4, 5, 6]
[4, 5, 6]
Process finished with exit code 0
我是否仍然可以弹出列表中的每个项目而不更改for item in l1:
循环?
答案 0 :(得分:0)
您可以创建列表的副本并从原始列表中弹出:
In [1]: l1 = [1,2,3,4,5,6]
In [2]: for item in l1[:]:
...: l1.pop(0)
...: print l1
...:
[2, 3, 4, 5, 6]
[3, 4, 5, 6]
[4, 5, 6]
[5, 6]
[6]
[]
然而,这肯定不优雅。