我正在尝试使用迭代器来更改变量列表的值。
>>> a = 1
>>> b = 2
>>> c = 3
>>> for i in [a,b,c]:
i += 1
>>> a,b,c #Expecting (2, 3, 4)
(1, 2, 3)
这似乎不起作用,我尝试了其他一些方法(请参见下文),但均未成功。1.有人可以告诉我一种解决此问题的更好方法吗?2.有人可以解释为什么上面的示例不符合我的预期吗?3.有人会告诉我如何/在哪里可以找到python帮助文档中的#2吗?
我以前寻找过答案的地方...Reassign variable to original value (defined prior to the loop) at start of each iteration in loopReassigning variables in pythonhttps://docs.python.org/3/reference/datamodel.html#objects-values-and-types
我觉得最后一次引用python文档可能有答案,但是我对大量的信息不知所措,我的大脑很累,我希望有人继续。可以帮助。
也尝试过...
>>> help(__name__)
Help on module __main__:
NAME
__main__
DATA
__annotations__ = {}
a = 1
b = 2
c = 3
i = 4
FILE
(built-in)
但是如果有的话,这只会让我更加困惑。
上次我尝试过...
>>> a = 1
>>> b = 2
>>> c = 3
>>> R = [a, b, c]
>>> for i in range(3):
R[i] += 1
>>> a, b, c #Hoping for (2, 3, 4)
(1, 2, 3)
>>> R #Kind of expected (1, 2, 3) based on the above behavior
[2, 3, 4]
您必须使用循环并在循环期间更改列表的每个值
a=[1, 2, 3]
for i in range(len(a)):
a[i] += 1
输出将是
[2, 3, 4]
要访问和更改列表中的值,您需要根据项目的位置选择项目(也可以使用切片)。因此,a [0] = 1,a [1] = 2,依此类推。要更改a [0]的值,您需要为其分配一个新值(如在for循环中所做的那样。)>
您的示例不起作用,因为您只是在更改i的值(先是1,然后是2,然后是3),而不是实际更改列表。您没有从列表本身中选择任何项目。
here提供了文档(请参阅第3.1.3节)