diff options
author | Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> | 2024-05-18 06:51:20 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-18 06:51:20 (GMT) |
commit | a370eebdd9bcc18d39f9e5d886ddb91a2435033e (patch) | |
tree | f0741a5b5a473232399fdc9bc960fc5196c127e5 /Doc/library | |
parent | fa359dfe07a07eb96e12b0053c5ae7089efdf9cc (diff) | |
download | cpython-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.rst | 21 |
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 |