0

我想将变量创建为a1, a2, a3... a10。为此,我使用了 for 循环。随着循环中的变量递增,我需要创建一个如上所述的变量。

谁能给我一个想法?

在创建时,我还需要能够为它们分配值。

那就是我遇到语法错误的地方。

4

4 回答 4

13

通常,我们使用一个列表,而不是一堆单独的变量。

a = 10*[0]
a[0], a[1], a[2], a[9]
于 2008-12-17T13:50:42.757 回答
4

按照 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}

我要补充一点,像您想要的那样自动创建变量是非常危险的,因为您可能会覆盖可能已经存在的变量。

于 2008-12-17T14:11:45.053 回答
2

globals()返回变量的全局字典:

for i in range(1,6):
    globals()["a%i" % i] = i

print a1, a2, a3, a4, a5      # -> 1 2 3 4 5

但坦率地说:我永远不会这样做,自动污染命名空间是有害的。我宁愿使用列表或字典。

于 2008-12-17T14:59:54.440 回答
-1

您可以使用 exec 函数:

for i in range(0,10):
   exec("a%d=%d" % (i,i))

不是很pythonic的做事方式。

于 2008-12-17T13:59:16.343 回答