Как не пропустить следующий элемент после itertools.takewhile ()
Скажем, мы хотим обработать итератор и хотим обрабатывать его кусками.
Логика для каждого чанка зависит от предварительно рассчитанных чанков, поэтомуgroupby()
не помогает.
Наш друг в этом случае - itertools.takewhile ():
while True:
chunk = itertools.takewhile(getNewChunkLogic(), myIterator)
process(chunk)
Проблема в том, чтоtakewhile()
необходимо пройти мимо последнего элемента, который соответствует новой логике чанка, таким образом «съедая» первый элемент для следующего чанка.
Существуют различные решения для этого, в том числе обертывание или а-ля Сungetc()
, так далее..
Мой вопрос: есть лиэлегантный решение?