请解释这个循环:因为我在l:l.remove(i)

Pol*_*Pol 0 python

例:

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

for i in l:
    print i,l
    l.remove(i)
Run Code Online (Sandbox Code Playgroud)

返回:

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]
Run Code Online (Sandbox Code Playgroud)

那为什么只有5个旋转?我希望它转10次.有人可以一步一步向我解释吗?

izo*_*ica 5

请注意打印的数字如何跳过列表中的一个数字?这是因为,我指向列表中的一个位置,一旦你删除i列表"向左移动"一个位置,而在i递增时,它实际上向右移动两个位置.因此,在第五次迭代之后,您将0处于列表右侧或外侧的位置.