Первый список - это набор индексов ко второму списку, с которого необходимо записать значения под этими индексами в третий список. Как это сделать?

Всем привет, столкнулся с такой задачей на одном из форумов:

Есть список b_index:

b_index= [1, 2, 4, 5, 8]

И есть список b:

b = [10.0, 0.0, 15.0, -30.0, 0.0, 0.0, 0.0, 18.0] 

Список b_index является набором индексов (порядковых номеров) к значениям списка b начиная с 1, а не с 0 (учитывайте это, ведь порядковый отсчёт в Python ведётся с 0). Вывести в отдельный список results значения списка b, которые соответствуют индексам, заданным в списке b_index.

Т.е. в списке results должны быть значения:

results = [10.0, 0.0, -30.0, 0.0, 18.0]

Как это сделать? Пробовал со вложенными циклами но результат не совпадал. Заранее спасибо


Ответы (1 шт):

Автор решения: Глеб

Ничего сложного:

b_index = [1, 2, 4, 5, 8]
b = [10.0, 0.0, 15.0, -30.0, 0.0, 0.0, 0.0, 18.0] 
print([b[i - 1] for i in b_index])

Вывод:

[10.0, 0.0, -30.0, 0.0, 18.0]
→ Ссылка