2016-04-07 5 views

ответ

4

Вы можете использовать itertools.islice для выбора элементов из итерации. Обратите внимание, что итераторы итерабельны, но не каждый итеративный - это итератор с методом next (или __next__ в Python3).

>>> from itertools import islice 
>>> iterator = (x for x in ('a', 'b', 'c', 'd', 'e')) 
>>> tuple(islice(iterator, 3)) 
('a', 'b', 'c') 

С другой стороны, простое понимание:

>>> iterator = (x for x in ('a', 'b', 'c', 'd', 'e')) 
>>> tuple(next(iterator) for _ in range(3)) 
('a', 'b', 'c') 

Название _ не имеет особого значения для интерпретатора (вне интерактивных сессий, где она хранит результат последнего выполненного оператора), но заметил, как имя переменной throwaway программистами Python.

Смежные вопросы