Skip to content

Commit a370eeb

Browse files
[3.12] Minor improvements to the docs for itertools.tee() (gh-119135) (gh-119137)
1 parent fa359df commit a370eeb

File tree

1 file changed

+11
-10
lines changed

1 file changed

+11
-10
lines changed

Doc/library/itertools.rst

+11-10
Original file line numberDiff line numberDiff line change
@@ -690,18 +690,19 @@ loops that truncate the stream.
690690

691691
def tee(iterable, n=2):
692692
iterator = iter(iterable)
693-
empty_link = [None, None] # Singly linked list: [value, link]
694-
return tuple(_tee(iterator, empty_link) for _ in range(n))
693+
shared_link = [None, None]
694+
return tuple(_tee(iterator, shared_link) for _ in range(n))
695695

696696
def _tee(iterator, link):
697-
while True:
698-
if link[1] is None:
699-
try:
700-
link[:] = [next(iterator), [None, None]]
701-
except StopIteration:
702-
return
703-
value, link = link
704-
yield value
697+
try:
698+
while True:
699+
if link[1] is None:
700+
link[0] = next(iterator)
701+
link[1] = [None, None]
702+
value, link = link
703+
yield value
704+
except StopIteration:
705+
return
705706

706707
Once a :func:`tee` has been created, the original *iterable* should not be
707708
used anywhere else; otherwise, the *iterable* could get advanced without

0 commit comments

Comments
 (0)