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