社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

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

Даниел Иванов • 4 年前 • 1830 次点击  

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

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
文章 [ 3 ]  |  最新文章 4 年前
ZXYNINE
Reply   •   1 楼
ZXYNINE    4 年前

正如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    4 年前

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

Barmar
Reply   •   3 楼
Barmar    4 年前

该循环实际上相当于:

for x in a:
    a[1] = x

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