gpt4 book ai didi

python - 有什么区别?< for item in list> 和

转载 作者:行者123 更新时间:2023-12-01 04:50:42 25 4
gpt4 key购买 nike

>>> n = [1, 2, 3]
>>> for item in n:
... item *= 2
...
>>> print n
[1, 2, 3]

我期望上面代码的结果是 [2, 4, 6],但显然不是。然后我尝试了 for i in range(n) 如下

>>> n = [1, 2, 3]
>>> for i in range(len(n)):
... n[i] *= 2
...
>>>
>>> n
[2, 4, 6]

这看起来不错。我的问题是,这两个 for 循环方法有什么本质区别?是什么原因导致上述意外结果?

最佳答案

如果有帮助,第一个循环相当于:

for i in range(len(n)):
item = n[i]
item *= 2

换句话说,它首先将 item 绑定(bind)到列表中的第 i 元素,然后将其重新绑定(bind)到一个新对象,该新对象的值是该对象的两倍第 i 个元素。它不会更改列表的任何元素。

实现此循环的一个好方法是使用列表理解:

n = [item * 2 for item in n]

关于python - 有什么区别?< for item in list> 和 <for i in range(len(list))>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28566577/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com