a = [0,1,2,3,4,5]
for b in a:
print ":"+str(b)
a.pop(0)
认为这将工作以便通过整个列表及其所有项目我运行此代码,并期望这一点。Python for循环列表有趣的结果
:0
0
:1
1
:2
2
:3
3
:4
4
:5
5
相反,我得到这个:
:0
0
:2
1
:4
2
现在我明白为什么会这样,但是这是在Python错误?难道它不应该通过所有的原始对象而不是当前列表的长度?为什么这不会抛出错误? IE:它不应该仍然这样做:
:0
0
:1
2
:2
4
:3
Error
:4
Error
:5
Error
我已经明白了为什么,但不应该抛出一个错误? – gabeio
@gabeDel:你为什么期望出现错误? –
哦,我忘记了名单正在缩短,但它仍然是由列表的长度,而不是每个元素。 – gabeio