Выбрать из списка на основе другого списка - PullRequest
0 голосов
/ 04 августа 2020

У меня два списка. Я хочу выбрать элементы из списка2 на основе индекса, указанного в списке1. Таким образом, результат будет 22260, 3640, 5920. Я не уверен, какие способы сделать это наиболее эффективны. Спасибо!

list1=[2, 1, 0]
list2=[[1820, 6700, 22260, 28820, 35420],[2140, 3640, 3660, 4180, 5400, 13020],[5920, 13980, 18820, 21280]]

Ответы [ 3 ]

2 голосов
/ 04 августа 2020

Использовать встроенную zip() функцию:

list1=[2, 1, 0]
list2=[[1820, 6700, 22260, 28820, 35420],[2140, 3640, 3660, 4180, 5400, 13020],[5920, 13980, 18820, 21280]]

for idx, lst in zip(list1, list2):
    print(lst[idx])

Печать:

22260
3640
5920
1 голос
/ 04 августа 2020

Простое понимание списка может помочь, если вы не хотите использовать zip -

[list2[i[0]][i[1]] for i in enumerate(list1)]
[22260, 3640, 5920]
0 голосов
/ 04 августа 2020
>>> [a[i] for i, a in zip(list1, list2)]
[22260, 3640, 5920]

или

>>> [*map(list.__getitem__, list2, list1)]
[22260, 3640, 5920]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...