Python: как получить n-й элемент из списка, где n из списка - PullRequest
0 голосов
/ 07 декабря 2018

Скажем, у меня есть:

a = ['the dog', 'cat', 'the frog went', '3452', 'empty', 'animal']
b = [0, 2, 4]

Как я могу вернуть:

c = ['the dog', 'the frog went', 'empty'] ?

т.е. как я могу вернуть n-й элемент из a, где n содержится в отдельном списке

Ответы [ 4 ]

0 голосов
/ 07 декабря 2018

Другой вариант, списки повторяются вместо a вместо (менее эффективны):

[ e for i, e in enumerate(a) if i in b ]

#=> ['the dog', 'the frog went', 'empty']

O с lambda:

map( lambda x: a[x], b )
0 голосов
/ 07 декабря 2018

Другой способ:

map(a.__getitem__, b)
0 голосов
/ 07 декабря 2018

Еще одно решение: если вы хотите использовать numpy (import numpy as np), вы можете использовать его причудливую функцию индексации (как Matlab), то есть в одной строке:

c = list(np.array(a)[b])
0 голосов
/ 07 декабря 2018

Используя понимание списка, просто сделайте:

c = [a[x] for x in b]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...