Py学习  »  Python

有人能解释一下python代码是如何工作的吗?[重复]

Даниел Иванов • 3 年前 • 1331 次点击  

我最近几天一直在想一段我听不懂的代码。 我担心这很简单,但仍然。。我必须知道它是怎么工作的,这让我很困扰。提前谢谢。

a = [1,1,2,3,5,8]
for a[1] in a:
 pass
print(a)

该代码的输出为:

[1,8,2,3,5,8]

这是怎么发生的?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/131845
 
1331 次点击  
文章 [ 3 ]  |  最新文章 3 年前
ZXYNINE
Reply   •   1 楼
ZXYNINE    3 年前

正如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”,这就是为什么它会给出它所做的结果。

Kota Mori
Reply   •   2 楼
Kota Mori    3 年前

你正在更新 a[1] 反复地。
因为最后一个值是8, a[1] 毕竟是8岁。

Barmar
Reply   •   3 楼
Barmar    3 年前

该循环实际上相当于:

for x in a:
    a[1] = x

所以每次通过循环,它都会 a[1] 指向列表的当前元素。最后,它包含列表的最后一个元素。