Загружаем изображение…

Слышали, что один и тот же итератор можно раздвоить без предварительного копирования данных?



Обычно итераторы в 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 | #совет
Просмотры: 189
Открыть в MAX Сообщить о неточности

Репосты публикации

Публикация канала

Сообщить о неточности

Опишите, что нужно исправить. Если есть источник, добавьте ссылку.

Вы покидаете datool.ru

Ссылка ведёт на внешний сайт. datool.ru не отвечает за его содержимое — проверьте адрес, прежде чем вводить пароли или платёжные данные.

Переход через 10 с

Перейти