Python 如何自动创建变量?

Python 如何自动创建变量?,python,list,function,variables,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”。 我做错了什么?这可能吗?您可以尝试使用字典: dict1 = {"name_1" : object her

我有以下代码:

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”。
我做错了什么?这可能吗?

您可以尝试使用字典:

dict1 = {"name_1" : object here, "name_2" : object here}
因此,当您要使用该变量时:

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

您可以尝试使用字典:

dict1 = {"name_1" : object here, "name_2" : object here}
因此,当您要使用该变量时:

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

我不知道我是否明白你的问题。您想知道如何动态分配变量名吗?这是一个解决方案,使用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

我不知道是否收到了你的问题。您想知道如何动态分配变量名吗?这是一个解决方案,使用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

动态变量被认为是非常糟糕的编码实践。你真的不想使用它们。你可能会觉得这样会使你的代码更可读,或者至少减少重复。但是,为了使其正常工作,您需要经历的扭曲会使代码的可读性大大降低。使用
dict
@iCodez感谢您提供的信息。动态变量被认为是一种非常糟糕的编码实践。你真的不想使用它们。你可能会觉得这样会使你的代码更可读,或者至少减少重复。但是,为了使其正常工作,您需要经历的扭曲会使代码的可读性大大降低。使用
dict
@iCodez感谢您提供的信息。这是官方祝福的OneTrueWay。这是官方祝福的OneTrueWay。是的,想知道如何动态分配变量。是的,想知道如何动态分配变量。