Загружаем изображение…
Слышали, что один и тот же итератор можно раздвоить без предварительного копирования данных?
Обычно итераторы в 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 | #совет