根据其他变量创建变量名称

时间:2016-04-08 15:32:27

标签: python for-loop

我正在尝试根据循环中的另一个变量创建变量名。我该如何做这样的事情?

y = a changing integer
for x in range(0, y):
    x += 1
    var(x) = something[x]
print var1
print var2

2 个答案:

答案 0 :(得分:4)

我记得第一次开始学习Python时遇到同样的问题。简短的回答是你不应该这样做,因为这是一个坏主意。它阻塞了命名空间,使代码更难调试,并且人们更难阅读。改为使用字典:

y = a changing integer
x = 0
var = {}
for x in range(0, y):
    x += 1
    var[x] = something[x]

答案 1 :(得分:3)

您可以使用globals作为动态创建变量的一种方式

e.g。对于全局 -

>>> for i in range(10):

...     globals()['number_%d' % i] = i

>>> print(globals())

>>> {'__loader__': <class '_frozen_importlib.BuiltinImporter'>, 'number_3': 3, 
 'number_9': 9, 'number_1': 1, 'number_7': 7, 'number_4': 4, 'number_6': 6, 
 'number_0': 0, '__doc__': None, '__package__': None, 'number_8': 8, 'number_5': 5, 
 '__builtins__': <module 'builtins' (built-in)>, '__name__': '__main__', 'i': 9, 
 '__spec__': None, 'number_2': 2}

您可以使用条件指定如何分配这些条件。

但是对于你需要的东西,这听起来通常是不必要的。其他答案中建议的tuplelist甚至dict会更好。