itertools.tee
Создаёт несколько итераторов для одного итерируемого объекта.
itertools.tee(iterable, n=2)
-> tuple[iterator, ...]]
iterable -- Объект, поддерживающий итерирование, для которого создаются итераторы.
n=2 -- Количество итераторов, которое требуется создать.
n=2 -- Количество итераторов, которое требуется создать.
Возвращает кортеж, содержащий указанное количество итераторов.
Внимание
После выполнения данной функции, следует избегать использования переданного в неё объекта. Иначе можно случайно передвинуть указатель на текущий элемент объекта, а созданные итераторы об этом ничего не узнают.
На заметку
Функция может потребовать значительных затрат на хранение временной информации. Поэтому, если один из итераторов обойдёт все или большую часть данных, до того как начнётся работа с другим, более эффективным будет приведение к списку, вместо вызова данной функции.
from itertools import tee
iter1, iter2, iter3 = tee([1, 2, 3], 3)
list(iter1) # [1, 2, 3]
list(iter2) # [1, 2, 3]
list(iter3) # [1, 2, 3]
Внимание
Созданные итераторы небезопасны для использования в нитях. Даже если переданный в функцию объект обучен работе с нитями, при одновременном использовании созданных итераторов может возникнуть RuntimeError.
Синонимы поиска: itertools.tee, itertools, tee
В разделе «itertools»:
itertools.accumulate
itertools.chain
itertools.compress
itertools.count
itertools.cycle
itertools.dropwhile
itertools.filterfalse
itertools.groupby
itertools.ifilter
itertools.ifilterfalse
itertools.imap
itertools.islice
itertools.product
itertools.repeat
itertools.starmap
itertools.takewhile
На заметку
В разделе «События» можно узнать о надвигающихся событиях мира Python, а также поделиться своими. Если вы являетесь организатором встречи/конференции/спринта, зарегистрируйте это событие в указанном разделе, чтобы о нём узнали все желающие.