From: Raymond Hettinger Date: Sat, 29 Dec 2007 22:09:34 +0000 (+0000) Subject: Simpler documentation for itertools.tee(). Should be backported. X-Git-Tag: v2.6a1~809 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5d332bbdee032d6851e252b1238482c14b32212c;p=python Simpler documentation for itertools.tee(). Should be backported. --- diff --git a/Doc/library/itertools.rst b/Doc/library/itertools.rst index c1bffa431d..9cb316d566 100644 --- a/Doc/library/itertools.rst +++ b/Doc/library/itertools.rst @@ -361,16 +361,15 @@ loops that truncate the stream. is equivalent to:: def tee(iterable): - def gen(next, data={}, cnt=[0]): + def gen(next, data={}): for i in count(): - if i == cnt[0]: - item = data[i] = next() - cnt[0] += 1 + if i in data: + yield data.pop(i) else: - item = data.pop(i) - yield item + data[i] = next() + yield data[i] it = iter(iterable) - return (gen(it.next), gen(it.next)) + return gen(it.next), gen(it.next) Note, once :func:`tee` has made a split, the original *iterable* should not be used anywhere else; otherwise, the *iterable* could get advanced without the tee