summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Doc/library/itertools.rst12
1 files changed, 12 insertions, 0 deletions
diff --git a/Doc/library/itertools.rst b/Doc/library/itertools.rst
index a7f0058..0e98c1e 100644
--- a/Doc/library/itertools.rst
+++ b/Doc/library/itertools.rst
@@ -828,6 +828,18 @@ which incur interpreter overhead.
indices = sorted(random.randrange(n) for i in xrange(r))
return tuple(pool[i] for i in indices)
+ def tee_lookahead(t, i):
+ """Inspect the i-th upcomping value from a tee object
+ while leaving the tee object at its current position.
+
+ Raise an IndexError if the underlying iterator doesn't
+ have enough values.
+
+ """
+ for value in islice(t.__copy__(), i, None):
+ return value
+ raise IndexError(i)
+
Note, many of the above recipes can be optimized by replacing global lookups
with local variables defined as default values. For example, the
*dotproduct* recipe can be written as::