python' for'循环逻辑

时间:2017-09-20 13:53:46

标签: python loops logic

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

2 个答案:

答案 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的内存位置。删除列表中的第一个元素后。第二个元素存储在第一个元素的存储位置。因此,循环在第二个存储器位置上循环,然后当前存储第三个元素。