我想将变量创建为a1
, a2
, a3
... a10
。为此,我使用了 for 循环。随着循环中的变量递增,我需要创建一个如上所述的变量。
谁能给我一个想法?
在创建时,我还需要能够为它们分配值。
那就是我遇到语法错误的地方。
通常,我们使用一个列表,而不是一堆单独的变量。
a = 10*[0]
a[0], a[1], a[2], a[9]
按照 S.Lott 所说,如果您真的需要唯一名称并且项目的顺序并不重要,您也可以使用 dict:
data = {}
for i in range(0, 10):
data['a%d' % i] = i
>>>data
{'a1': 1, 'a0': 0, 'a3': 3, 'a2': 2, 'a5': 5, 'a4': 4, 'a7': 7, 'a6': 6, 'a9': 9, 'a8': 8}
我要补充一点,像您想要的那样自动创建变量是非常危险的,因为您可能会覆盖可能已经存在的变量。
globals()
返回变量的全局字典:
for i in range(1,6):
globals()["a%i" % i] = i
print a1, a2, a3, a4, a5 # -> 1 2 3 4 5
但坦率地说:我永远不会这样做,自动污染命名空间是有害的。我宁愿使用列表或字典。
您可以使用 exec 函数:
for i in range(0,10):
exec("a%d=%d" % (i,i))
不是很pythonic的做事方式。