我是新來的Python與列表 我使用Python 3.2.3(默認情況下,2012年10月19日,20實驗: 13:42)[GCC 4.6.3]上linux2上爲什麼一個for循環彈出式法(或del語句)不遍歷所有列表元素
這裏是我的samplecode
>>> l=[1,2,3,4,5,6]
>>> for i in l:
... l.pop(0)
... print(l)
...
我希望下面的輸出
1
[2, 3, 4, 5, 6]
2
[3, 4, 5, 6]
3
[4, 5, 6]
4
[5, 6]
5
[6]
6
[]
相反,我得到這個
1
[2, 3, 4, 5, 6]
2
[3, 4, 5, 6]
3
[4, 5, 6]
的for循環停止後3圈迭代。有人可以解釋爲什麼嗎?
可能重複的[迭代修改列表](http://stackoverflow.com/questions/1637807/modifying-list-while-iterating) –
@NedBatchelder:儘管根本原因是相同的,但問題是顯着不同的。調用'pop'的原因甚至不一樣(鏈接正試圖跳過,這不是)。 – Guvante