Python的新手 - 不明白为什么以下似乎跳过x = 2?
a = [1, 2, 3]
for x in a:
print("x=", x)
print("a=", a)
a.remove(x)
print("new a=", a)
返回:
x= 1
a= [1, 2, 3]
new a= [2, 3]
x= 3
a= [2, 3]
new a= [2]
Process finished with exit code 0
答案 0 :(得分:0)
您在迭代时更改列表。
在第一个循环中,它正在查看git --work-tree=/var/www/project --git-dir=/var/repos/Project.git checkout -f -- ':/:*' ':!/:app/config/local' ':!/:bootstrap'
的第一个元素。然后删除第一个元素,将a
更改为a
。在第二个循环中,它查看[2,3]
的第二个元素。因为a
已经改变,它的第二个元素现在是3,这就是你得到的。
答案 1 :(得分:0)
for循环遍历列表a的内存位置。删除列表中的第一个元素后。第二个元素存储在第一个元素的存储位置。因此,循环在第二个存储器位置上循环,然后当前存储第三个元素。