0

例:

l = [1,2,3,4,5,6,7,8,9,0]

for i in l:
    print i,l
    l.remove(i)

戻り値:

1 [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
3 [2, 3, 4, 5, 6, 7, 8, 9, 0]
5 [2, 4, 5, 6, 7, 8, 9, 0]
7 [2, 4, 6, 7, 8, 9, 0]
9 [2, 4, 6, 8, 9, 0]

では、なぜ5回転しかないのでしょうか? 10回は回ると思います。誰かが私にそれを段階的に説明できますか?

4

2 に答える 2

5

印刷された数値がリスト内の 1 つの数値を飛び越えていることに注目してください。これは、 i がリスト内の位置を指しており、リストを削除するとi1 位置が左に「シフト」され、iがインクリメントされると、実際には 2 位置が右に移動するためです。したがって、5 回目の反復の後、0リストの右側または外側の位置になります。

于 2013-02-06T16:41:07.533 に答える