0

我有一个关于我的程序的快速问题。我想将 0 分配给所有名为 的变量rdf12(i),例如rdf12(1) = 0 rdf12(2) = 0. 这是我的代码:

for i in range(200):
    rdf12(i) = 0

但结果并不是那么容易,我有一个错误说:

SyntaxError: can't assign to function call

那么如何编辑我的代码来修复它呢?

4

2 回答 2

1

Python 中的项目访问运算符是[],不是()

所以你可能想要rdf12[i] = 0。但是,这仅在您有一个rdf12已包含 200 多个元素的列表时才有效。如果您有/想要名为rdf120, rdf121, ... 的实际变量,则不会 - 如果不是这种情况,您需要重构您的代码(虽然仍然有可能,但我不会在此处发布该解决方案,因为它会令人难以置信丑陋的)。无论如何,这是你应该使用的:

rdf12 = [0 for i in range(200)]

这会给你一个包含 200 个零的列表。然后,您可以使用rdf12[0], rdf12[1], ... 访问元素,rdf12[199]并为它们分配其他值等。

于 2013-09-18T01:08:17.857 回答
0

您不能将括号作为变量名的一部分,因为此语法用于调用函数()您实际上是在尝试调用rdf12具有 的值的函数i

如果你命名你的变量rdf12_0rdf12_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
于 2013-09-18T01:16:10.080 回答