是否可以在python中的for循环中自动创建变量?

时间:2016-11-02 08:07:51

标签: python machine-learning

我想知道是否有一种很好的方法来使用循环来创建和分配变量。我通常会在列表中捕获对象,但通过变量名访问每个对象会很好。 例如,我想自动创建具有不同参数的多个机器学习模型,并将每个模型分配给变量model_1,model_2等。 可能看起来像这样的东西:

for i,parameter in enum(list_of_parameters):
    model_ + i = model_generator_function(parameter)

感谢您的帮助!

3 个答案:

答案 0 :(得分:5)

事实是,您无法在运行时生成变量的名称,因此您必须将它们保存在某处。我建议使用字典 尝试做这样的事情:

models = dict()

for parameter in list_of_parameters :
    for i in range(len(list_of_parameters)) :
        models["model_" + str(i)] = model_generator_function(parameter)

您可以轻松访问变量(models[model_name])。

答案 1 :(得分:0)

您可以使用dictionary动态创建密钥。 尝试执行以下操作:

data = {}

for i, param in enum(list_of_params):
        data['model_{}'.format(i)] = model_generator_function(param)

答案 2 :(得分:0)

dict可能很有用,创建像“model_0”,“model_1”等键是有点尴尬的难度。 如果你实际上只有一个模型列表,你也可以把它们放在一个列表中:

models = list()
for parameter in list_of_parameters :
    models.append(model_generator_function(parameter))

或更短:

models = [model_generator_function(p)
          for p in list_of_parameters]