如何在Python中执行变量0 = 0 ...变量9 = 9

时间:2019-03-18 13:58:49

标签: python

我有一个简单的初学者问题。

如何使此代码起作用:

variable0 = 0

...
variable9 = 9

我尝试过:

for j in range(9):
    variable"{}".format(j) = j

和其他类似的东西与eval()和exec()函数。

非常感谢!

6 个答案:

答案 0 :(得分:5)

为什么不使用列表以及列表理解:

variable = [i for i in range(10)]

然后,您可以将variable[0]用作“变量0”,等等。


或者,如一些评论所述

variable = list(range(10))

答案 1 :(得分:4)

如果您确实想这样做,可以这样做:

for j in range(9):
    exec("variable{} = j".format(j))

但是正如其他人所说,您可能不应该。

答案 2 :(得分:1)

如果您使用数字,请使用列表:

items = [1, 2, 3, 4, ...]

items = range(10)

然后您可以查找items[0]items[2]

如果您想使用其他标识物品,请使用字典:

items = {
    1: 1,
    2: 2,
    'foo': 'bar'
    ...
}

您可以使用items[0]items['foo']等进行查找

您还可以使用列表推导或字典推导来定义数据结构,例如

items = {i: i for i in range(10)}

答案 3 :(得分:0)

我认为使用字典更适合此任务:

d = {"variable{}".format(i): i for i in range(10)}

print(d['variable0']) # ==> 0
print(d['variable5']) # ==> 5
print(d['variable9']) # ==> 9

答案 4 :(得分:0)

如果确实需要此特定行为(即时更改变量名),则可以采用一种方法来完成它。我不建议使用此解决方案,因为有更直观的解决方案,而且这种方法也不是一个很好的设计。在这里:

l = locals()
counter = 0;
for i in range(9):
   l["variable" + str(counter)] = i
   counter += 1

答案 5 :(得分:-1)

我不会真的推荐这样做,但是您可以根据是在模块级别还是在函数内部分配globals()或locals()字典。

for i in range(10): globals()[f'variable{i}'] = 0

def myfunc():
    for i in range(10): locals()[f'variable{i}'] = 0
相关问题