如何为迭代的每一列创建变量?

时间:2019-05-07 19:32:37

标签: python excel pandas scipy

我正在尝试编写代码以遍历数据表中的列并根据列数创建变量。然后,这些变量将用于优化问题,因此我需要为这些变量分配任何值。

我创建了一个包含像list_w = ['w1','w2',.....'w35']之类的字符串的列表,但是我需要这些字符串作为变量。

这是我根据一些在线资源尝试执行的操作,但这不起作用:

def objective(w):
    for e in list_w:
        f = list_w.index(e)
        vars()[e] =w[f]
        print(e)

    return w1*w2*w3*w4

1 个答案:

答案 0 :(得分:0)

您真正想要的是一本字典:

def objective(w):
    my_dict = dict()
    for e in list_w:
        my_dict[e] = w[list_w.index(e)]
     return my_dict

现在可以从my_dict['w1']之类的每个“变量”(字典键)访问您的值。要获得它们相乘的结果,您可以循环遍历字典的值:

result = 1
for val in my_dict.values():
    result *= val

另一方面,从您的代码看来,您所需要的只是list_w中每个元素的关联索引(假设每个元素都是唯一的)。如果是这种情况,请查看enumerate