Как я могу вставить значения одного списка в другой, используя значения других списков индекса в первый? (Python)

#python #list

Вопрос:

Предположим, у меня есть два списка:

 list1 = [[2, 4], [3], [0, 4], [1], [0, 2], []]
list2 = [12000,24000,14000,22000,13000,30000]
 

Как я могу вставить значения list2 в list1 по соответствующей позиции индекса, чтобы вывод был:

 list3 = [[14000, 13000], [22000], [12000, 13000], [24000], [12000, 14000], []]
 

Спасибо.

Ответ №1:

list3 = [[list2[y] for y in x] for x in list1]

Ответ №2:

Вы можете попробовать это:

 list1 = [[2, 4], [3], [0, 4], [1], [0, 2], []]
list2 = [12000,24000,14000,22000,13000,30000]
for i in list1:
    for k,j in enumerate(i):
        i[k]=list2[j]
print(list1)
 

Выход:

 [[14000, 13000], [22000], [12000, 13000], [24000], [12000, 14000], []]
 

Вот компактное решение:

 List3=[[list2[x] for x in i] for i in list1]
print(list3)