我有这段代码:
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”。 我究竟做错了什么?这甚至可能吗?
答案 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