我正在尝试根据循环中的另一个变量创建变量名。我该如何做这样的事情?
y = a changing integer
for x in range(0, y):
x += 1
var(x) = something[x]
print var1
print var2
答案 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}
您可以使用条件指定如何分配这些条件。
但是对于你需要的东西,这听起来通常是不必要的。其他答案中建议的tuple
,list
甚至dict
会更好。