Как извлечь элементы из списка с помощью индексов в Python? [дубликат]

Этот вопрос уже имеет ответ здесь:

Если Вы имеете список в Python и хотите извлечь элементы в индексах 1, 2 и 5 в новый список, как Вы сделали бы это?

Это - то, как я сделал это, но я не очень удовлетворен:

>>> a
[10, 11, 12, 13, 14, 15]
>>> [x[1] for x in enumerate(a) if x[0] in [1,2,5]]
[11, 12, 15]

Существует ли лучший путь?

Больше в целом, учитывая кортеж индексов, как Вы использовали бы этот кортеж для извлечения соответствующих элементов из списка, даже с дублированием (например, кортеж (1,1,2,1,5) производит [11,11,12,11,15]).

32
задан jpp 10 August 2019 в 11:16
поделиться

4 ответа

Возможно, используйте это:

[a[i] for i in (1,2,5)]
# [11, 12, 15]
72
ответ дан 27 November 2019 в 20:03
поделиться

I think you're looking for this:

elements = [10, 11, 12, 13, 14, 15]
indices = (1,1,2,1,5)

result_list = [elements[i] for i in indices]    
6
ответ дан 27 November 2019 в 20:03
поделиться

Bounds checked:

 [a[index] for index in (1,2,5,20) if 0 <= index < len(a)]
 # [11, 12, 15] 
2
ответ дан 27 November 2019 в 20:03
поделиться

Попробуйте

numbers = range(10, 16)
indices = (1, 1, 2, 1, 5)

result = [numbers[i] for i in indices]
5
ответ дан 27 November 2019 в 20:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: