所以...
a = [2,3,4,5]
for x in a:
x += 1
a = [2,3,4,5]
纳达。
但是如果我...
a[2] += 1
a = [2,3,5,5]
显然我的头脑无法理解这些基础知识。 print(x)
仅返回单元格内的整数,因此它应该为每个列表单元格自动添加一个整数。解决方案是什么,我没有掌握什么?
最佳答案
在这种情况下,您正在定义一个新变量 x
,它依次引用 a
的每个元素。您不能修改 x
引用的 int
,因为 int
在 Python 中是不可变的。当您使用 +=
运算符时,会创建一个新的 int
并且 x
引用这个新的 int
,而不是比 a
中的那个。如果您创建了一个包含 int
的 class
,那么您可以按原样使用循环,因为此类的实例是可变的。 (这不是必需的,因为 Python 提供了更好的方法来做你想做的事)
for x in a:
x += 1
你想要做的是基于a生成一个新列表,并可能将其存储回a。
a = [x + 1 for x in a]
关于python - 掌握就地操作的基础知识,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21958543/