我有一个关于我的程序的快速问题。我想将 0 分配给所有名为 的变量rdf12(i)
,例如rdf12(1) = 0 rdf12(2) = 0
. 这是我的代码:
for i in range(200):
rdf12(i) = 0
但结果并不是那么容易,我有一个错误说:
SyntaxError: can't assign to function call
那么如何编辑我的代码来修复它呢?
我有一个关于我的程序的快速问题。我想将 0 分配给所有名为 的变量rdf12(i)
,例如rdf12(1) = 0 rdf12(2) = 0
. 这是我的代码:
for i in range(200):
rdf12(i) = 0
但结果并不是那么容易,我有一个错误说:
SyntaxError: can't assign to function call
那么如何编辑我的代码来修复它呢?
Python 中的项目访问运算符是[]
,不是()
。
所以你可能想要rdf12[i] = 0
。但是,这仅在您有一个rdf12
已包含 200 多个元素的列表时才有效。如果您有/想要名为rdf120
, rdf121
, ... 的实际变量,则不会 - 如果不是这种情况,您需要重构您的代码(虽然仍然有可能,但我不会在此处发布该解决方案,因为它会令人难以置信丑陋的)。无论如何,这是你应该使用的:
rdf12 = [0 for i in range(200)]
这会给你一个包含 200 个零的列表。然后,您可以使用rdf12[0]
, rdf12[1]
, ... 访问元素,rdf12[199]
并为它们分配其他值等。
您不能将括号作为变量名的一部分,因为此语法用于调用函数(
。)
您实际上是在尝试调用rdf12
具有 的值的函数i
。
如果你命名你的变量rdf12_0
,rdf12_1
等等,你可以通过locals()
返回局部变量声明字典的函数来访问它们,但是我相信对这个字典进行修改并不能保证工作,因此这是一个非常糟糕的主意。
>>> rdf12_0 = 0
>>> lcls = locals()
>>> print(lcls['rdf12_0'])
0
>>> name = 'rdf12_' + str(0)
>>> lcls[name] = 34
>>> rdf12_0
34
我建议改为将您的值存储在list
:
>>> rdf12 = [34, 12, 9, 97]
>>> rdf12[0]
34
>>> rdf12[1]
12
>>> for i in rdf12:
... print(i)
...
34
12
9
97