Легко преобразовать всю последовательность итераторов в список , используя list(iterator)
, но каков наилучший / быстрый способ прямого создания подсписка из итератора без предварительного создания всего списка, т.е. как лучше всего создать list(iterator)[m:n]
без предварительного создания всего списка?
Кажется очевидным, что не должно быть * (по крайней мере, не всегда) сделать это непосредственно для m > 0
, но это должно быть для n
меньше длины последовательности. [p for i,p in zip(range(n), iterator)]
приходит на ум, но разве это лучший способ?
Контекст прост: создание всего списка приведет к переполнению ОЗУ, поэтому его необходимо разбить. Так как же вы делаете это эффективно и / или python -i c -ly?
* Упомянутое мной списочное понимание, очевидно, можно использовать для m > 0
, вызвав next(iterator)
m
раз до казни, но мне здесь не нравится отсутствие python.