Я имею функцию генератора и хочу получить первые десять объектов от нее; моя первая попытка была:
my_generator()[:10]
Это не работает, потому что генераторы не subscriptable, как ошибка говорит мне. Прямо сейчас я работал вокруг этого с:
list(my_generator())[:10]
Это работает, так как это преобразовывает генератор в список; однако, это неэффективно и побеждает точку наличия генератора. Есть ли некоторые встроенные, Pythonic, эквивалентный из [:10]
для генераторов?
import itertools
itertools.islice(mygenerator(), 10)
itertools
содержит ряд утилит для работы с итераторами. islice
принимает аргументы start, stop и step для нарезки итератора так же, как и для нарезки списка.