gpt4 book ai didi

python - 如何将列表中的所有值加倍

转载 作者:行者123 更新时间:2023-12-01 21:26:38 24 4
gpt4 key购买 nike

n = [3, 5, 7]

def double(lst):
for x in lst:
x *= 2
print x
return lst

print double(n)

为什么不返回 n = [6, 10, 14]

还应该有一个更好的解决方案,类似于 [x *=2 for x in lst] 但它也不起作用。

任何有关 for 循环和列表的其他提示将不胜感激。

最佳答案

Why doesn't this return n = [6, 10, 14]?

因为n ,或lst正如里面所说的 double ,从未被修改。 x *= 2相当于 x = x * 2对于数字 x ,并且只会重新绑定(bind)名称 x而不改变它引用的对象。

要查看此内容,请修改 double如下:

def double(lst):
for i, x in enumerate(lst):
x *= 2
print("x = %s" % x)
print("lst[%d] = %s" % (i, lst[i]))

要就地更改数字列表,您必须重新分配其元素:

def double(lst):
for i in xrange(len(lst)):
lst[i] *= 2

如果您不想就地修改它,请使用理解式:

def double(lst):
return [x * 2 for x in lst]

关于python - 如何将列表中的所有值加倍,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17659767/

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