我想知道是否有一种很好的方法来使用循环来创建和分配变量。我通常会在列表中捕获对象,但通过变量名访问每个对象会很好。 例如,我想自动创建具有不同参数的多个机器学习模型,并将每个模型分配给变量model_1,model_2等。 可能看起来像这样的东西:
for i,parameter in enum(list_of_parameters):
model_ + i = model_generator_function(parameter)
感谢您的帮助!
答案 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]