Есть ли способ вставить значения в определенный список динамически? - PullRequest
0 голосов
/ 13 июня 2019

Я пытаюсь вставить значения в список, используя имя переменной динамически, но я не могу это сделать.

lst_prio = [90, 100]
p_90 = [0.11, 0.2, 0.15, 0.6, 0.9]
p_100 = [0.1, 0.3, 0.5, 0.7, 0.8]
lst_crv = [4,3,2,5,6]
crv = [1,2,3,4,5]

lst_percs = []
for x in range(len(lst_prio)):
    lst_percs.append("lst_p_"+str(lst_prio[x]))

dic =dict(zip(lst_prio,lst_percs))

for w in range(len(lst_prio)):
    dic[lst_prio[w]] =[]
    for i in range(len(crv)):
        for j in range(len(lst_crv)):
            if crv[i] == lst_crv[j]:
#Below I would like to insert the list as the append value (p_90 to p_100) dynamically based on the dictionary I've created 
                dic[lst_prio[w]].append(p_90[i])

Результат, который я получаю (потому что я не могу повторить):

lst_p_90 = [0.2, 0.15, 0.6, 0.9]

lst_p_90 = [0.2, 0.15, 0.6, 0.9]

Результат, который я хотел бы:

lst_p_90 = [0.2, 0.15, 0.6, 0.9]

lst_p_100 = [0.3, 0.5, 0.7, 0.8]

1 Ответ

0 голосов
/ 13 июня 2019

Я думаю, я понял, что вы имели в виду.Вы хотите динамически оценивать переменную на основе имени.Попробуйте это для последних строк.

    if crv[i] == lst_crv[j]:
        number = lst_prio[w]
        p_n = locals()['p_' + str(number)]
        dic[number].append(p_n[i])

Связанный: Как получить значение переменной, учитывая ее имя в строке?

...