summaryrefslogtreecommitdiffstats
path: root/Doc/library
diff options
context:
space:
mode:
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2024-05-18 06:51:20 (GMT)
committerGitHub <noreply@github.com>2024-05-18 06:51:20 (GMT)
commita370eebdd9bcc18d39f9e5d886ddb91a2435033e (patch)
treef0741a5b5a473232399fdc9bc960fc5196c127e5 /Doc/library
parentfa359dfe07a07eb96e12b0053c5ae7089efdf9cc (diff)
downloadcpython-a370eebdd9bcc18d39f9e5d886ddb91a2435033e.zip
cpython-a370eebdd9bcc18d39f9e5d886ddb91a2435033e.tar.gz
cpython-a370eebdd9bcc18d39f9e5d886ddb91a2435033e.tar.bz2
[3.12] Minor improvements to the docs for itertools.tee() (gh-119135) (gh-119137)
Diffstat (limited to 'Doc/library')
-rw-r--r--Doc/library/itertools.rst21
1 files changed, 11 insertions, 10 deletions
diff --git a/Doc/library/itertools.rst b/Doc/library/itertools.rst
index 183aa36..cf2bbf0 100644
--- a/Doc/library/itertools.rst
+++ b/Doc/library/itertools.rst
@@ -690,18 +690,19 @@ loops that truncate the stream.
def tee(iterable, n=2):
iterator = iter(iterable)
- empty_link = [None, None] # Singly linked list: [value, link]
- return tuple(_tee(iterator, empty_link) for _ in range(n))
+ shared_link = [None, None]
+ return tuple(_tee(iterator, shared_link) for _ in range(n))
def _tee(iterator, link):
- while True:
- if link[1] is None:
- try:
- link[:] = [next(iterator), [None, None]]
- except StopIteration:
- return
- value, link = link
- yield value
+ try:
+ while True:
+ if link[1] is None:
+ link[0] = next(iterator)
+ link[1] = [None, None]
+ value, link = link
+ yield value
+ except StopIteration:
+ return
Once a :func:`tee` has been created, the original *iterable* should not be
used anywhere else; otherwise, the *iterable* could get advanced without