Python Ready | Программирование
Слышали, что один и тот же итератор можно раздвоить без предварительного копирования данных?
Обычно итераторы в Python одноразовые, если вы их прошли, данные теряются:
it = iter([1,2,3])
list(it); list(it) # второй раз пусто
itertools.tee создаёт независимые итераторы, которые можно использовать отдельно:
a, b = tee(it)
Теперь оба итератора будут выдавать одинаковые значения, не мешая друг другу:
next(a); next(a)
next(b)
Под капотом tee лениво буферизует элементы по мере чтения — это не копия списка, а кеширование потока.
Полезно при работе со стримами, генераторами и пайплайнами, когда нужно подсмотреть данные без разрушения потока.
tee позволяет переиспользовать поток данных без предварительного копирования.
Python Ready | #совет Если у вас установлено приложение,
вы можете сразу перейти в канал