正如Kota Mori所说,您正在递归地更新它,但这可能有点难以找到直觉,因为它也有助于打印值。看看这段修改过的代码:
a = [1,1,2,3,5,8]
for a[2] in a:
print(a[2])
pass
print(a)
会打印出来的
1
1
1
3
5
8
[1, 1, 8, 3, 5, 8]
所以你可以看到,即使在一开始,它的值是1而不是2。这是因为这是你迭代时得到的第一个值。本质上,它设置了[2]=a[0]。
当它完成循环时,[2]被设置为最后一个值“8”,这就是为什么它会给出它所做的结果。