Как создать переменные для каждого повторяемого столбца? - PullRequest
1 голос
/ 07 мая 2019

Я пытаюсь написать код для перебора столбцов в таблице данных и создания переменных в зависимости от количества столбцов. Затем переменные будут использоваться в задаче оптимизации, поэтому мне нужно, чтобы переменным не было присвоено какое-либо значение.

Я создал список, содержащий строки, такие как 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 голосов
/ 07 мая 2019

То, что вы на самом деле хотите, это словарь:

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 (при условии, что каждый элемент уникален). Если это так, взгляните на перечисление .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...