Как получить прерывистый элемент из списка / кортежа в python? [Дубликат]

2017 ответ: теперь вы можете делать то, что хотите, в каждом текущем браузере и узле

. Это довольно просто:

  • Вернуть обещание
  • Используйте 'await' , в котором JavaScript ожидает, что обещание будет разрешено в vlue (например, hTTP-ответ)
  • Добавьте 'async' для родительской функции

Вот рабочая версия вашего кода:

(async function(){

var response = await superagent.get('...')
console.log(response)

})()

ожидание поддерживается во всех текущих браузерах и узлах 8 [/ д2]

45
задан Ashwini Chaudhary 3 July 2014 в 09:38
поделиться

5 ответов

Вы можете использовать operator.itemgetter :

>>> from operator import itemgetter
>>> bar = ['a','b','c','x','y','z']
>>> itemgetter(0, 3, 4)(bar)
('a', 'x', 'y')

Итак, для вашего примера вы бы сделали следующее:

>>> v1, v2, v3 = itemgetter(0, 3, 4)(bar)
87
ответ дан ejrb 31 August 2018 в 23:42
поделиться

В numpy вы можете индексировать массив с другим массивом , который содержит индексы. Это позволяет использовать очень компактный синтаксис именно так, как вы хотите:

In [1]: import numpy as np
In [2]: bar = np.array(['a','b','c','x','y','z'])
In [3]: v1, v2, v3 = bar[[0, 3, 4]]
In [4]: print v1, v2, v3
a x y

Использование numpy скорее всего будет излишним для вашего простого случая. Я просто упомянул об этом для полноты, если вам нужно сделать то же самое с большими объемами данных.

21
ответ дан Bas Swinckels 31 August 2018 в 23:42
поделиться

Предполагая, что ваши индексы не являются ни динамическими, ни слишком большими, я бы пошел с

bar = ['a','b','c','x','y','z']
v1, _, _, v2, v3, _ = bar
44
ответ дан Bergi 31 August 2018 в 23:42
поделиться

Поскольку вы хотите компактность, вы можете сделать что-то следующим образом:

indices = (0,3,4)
v1, v2, v3 = [bar[i] for i in indices]

>>> print v1,v2,v3     #or print(v1,v2,v3) for python 3.x
a x y
35
ответ дан sshashank124 31 August 2018 в 23:42
поделиться

Еще один способ:

from itertools import compress

bar = ['a','b','c','x','y','z']
v1, v2, v3 = compress(bar, (1, 0, 0, 1, 1, 0))

Кроме того, вы можете игнорировать длину списка и пропускать нули в конце селекторов:

v1, v2, v3 = compress(bar, (1, 0, 0, 1, 1,))

https : //docs.python.org/2/library/itertools.html#itertools.compress

7
ответ дан Yuriy Kovalev 31 August 2018 в 23:42
поделиться
Другие вопросы по тегам:

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