我有一个关于我的程序的快速问题。我想将 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