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 循环和列表的任何其他提示将不胜感激。
原文由 jane 发布,翻译遵循 CC BY-SA 4.0 许可协议
因为
n
或lst
因为它在内部被称为double
,永远不会被修改。x *= 2
is equivalent tox = x * 2
for numbersx
, and that only re-binds the namex
without changing the object it references.要查看此内容,请修改
double
如下:要就地更改数字列表,您必须重新分配其元素:
如果您不想就地修改它,请使用理解: