summaryrefslogtreecommitdiffstats
path: root/Doc/lib/libitertools.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Doc/lib/libitertools.tex')
-rw-r--r--Doc/lib/libitertools.tex15
1 files changed, 11 insertions, 4 deletions
diff --git a/Doc/lib/libitertools.tex b/Doc/lib/libitertools.tex
index f291fe3..e146c6c 100644
--- a/Doc/lib/libitertools.tex
+++ b/Doc/lib/libitertools.tex
@@ -358,10 +358,6 @@ from building blocks.
... "Returns True if pred(x) is False for every element in the iterable"
... return not nth(ifilter(pred, seq), 0)
->>> def pairwise(seq):
-... "s -> (s0,s1), (s1,s2), (s2, s3), ..."
-... return izip(seq, islice(seq,1,None))
-
>>> def padnone(seq):
... "Returns the sequence elements and then returns None indefinitely"
... return chain(seq, repeat(None))
@@ -373,4 +369,15 @@ from building blocks.
>>> def dotproduct(vec1, vec2):
... return sum(imap(operator.mul, vec1, vec2))
+>>> def window(seq, n=2):
+... "Returns a sliding window (of width n) over data from the iterable"
+... " s -> (s0,s1,...s[n-1]), (s1,s2,...,sn), ... "
+... it = iter(seq)
+... result = tuple(islice(it, n))
+... if len(result) == n:
+... yield result
+... for elem in it:
+... result = result[1:] + (elem,)
+... yield result
+
\end{verbatim}