Получите подмножество генератора

Я имею функцию генератора и хочу получить первые десять объектов от нее; моя первая попытка была:

my_generator()[:10]

Это не работает, потому что генераторы не subscriptable, как ошибка говорит мне. Прямо сейчас я работал вокруг этого с:

list(my_generator())[:10]

Это работает, так как это преобразовывает генератор в список; однако, это неэффективно и побеждает точку наличия генератора. Есть ли некоторые встроенные, Pythonic, эквивалентный из [:10] для генераторов?

23
задан Rory 12 July 2010 в 07:05
поделиться

1 ответ

import itertools

itertools.islice(mygenerator(), 10)

itertools содержит ряд утилит для работы с итераторами. islice принимает аргументы start, stop и step для нарезки итератора так же, как и для нарезки списка.

28
ответ дан 29 November 2019 в 02:24
поделиться
Другие вопросы по тегам:

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