如何自动创建变量?

时间:2013-11-15 15:56:40

标签: python list function variables

我有这段代码:

lst = [name_1, name_2, name_3, name_4, name_5, name_6, name_7]

for i in lst:   
    i = class.function(argument)

我想使用列表中的名称作为变量名称,并以这种方式构造新变量,让机器完成艰苦的工作。但相反,我得到了这个: NameError:未定义名称“name_1”。 我究竟做错了什么?这甚至可能吗?

2 个答案:

答案 0 :(得分:4)

您可以尝试使用字典:

dict1 = {"name_1" : object here, "name_2" : object here}

所以当你想要使用那个变量时:

dict1["name_1"].someFunction(...)

答案 1 :(得分:1)

如果我得到你的问题,我不会知道。您想知道如何动态分配变量名吗?这是一个解决方案,使用python“exec()”

通常这就是我们定义变量的方式:

a=3

在这段代码中,我们在编写代码时知道变量名。但是如果我们在脚本运行之前不知道它的名字呢?我们可以使用exec

var_name = ["a","b","c"]
var_value = [3,4,5]
for name,value in zip(var_name,var_value):
   exec("%s=%d" % (name,value))
print a,b,c

输出:3,4,5