>>> 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
绑定到列表的第i
个元素,然后将其重新绑定到其值是第i
个元素的两倍的新对象。它不会更改列表的任何元素。实现此循环的一个好方法是使用列表理解:
n = [item * 2 for item in n]
关于python - 有什么区别?<用于列表中的项目>和<用于范围内的我(len(list))>,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28566577/