itertools.tee()
Создаёт n независимых итераторов из одного исходного итерируемого объекта.
Сигнатура
itertools.tee(iterable, n=2)Возвращает кортеж из n итераторов, каждый из которых выдаёт те же значения, что и исходный. После вызова не следует использовать оригинальный итератор. Учтите: если один итератор сильно опережает другой, во внутреннем буфере накапливаются элементы.
import itertools
a, b = itertools.tee([1, 2, 3])
print(list(a)) # [1, 2, 3]
print(list(b)) # [1, 2, 3]