gpt4 book ai didi

python 列表突变(for in loop vs range(len))

转载 作者:行者123 更新时间:2023-11-28 17:38:49 25 4
gpt4 key购买 nike

为什么下面的不改变传入的列表:

def modify(listarg):
for x in listarg:
x=x*2

而这确实会改变它:

def modify(listarg):
for x in range(len(listarg)):
listarg[x]=listarg[x]*2

最佳答案

第一个只是给你迭代变量 (x),本质上 for...in 使用内置的 iter 函数。在第二种情况下,您实际上将值绑定(bind)到列表。

for x in listarg:
x=x*2

上面的代码可以看成:

i = iter(listarg)
x = i.next() # fetch first value
# this value then you double
# which won't effect the element

有关更多详细信息,您可以引用此 article .

关于python 列表突变(for in loop vs range(len)),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27469981/

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