summaryrefslogtreecommitdiff
path: root/Doc/lib/libitertools.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Doc/lib/libitertools.tex')
-rw-r--r--Doc/lib/libitertools.tex16
1 files changed, 7 insertions, 9 deletions
diff --git a/Doc/lib/libitertools.tex b/Doc/lib/libitertools.tex
index 780ed55023..9d7f7ca9c4 100644
--- a/Doc/lib/libitertools.tex
+++ b/Doc/lib/libitertools.tex
@@ -250,16 +250,14 @@ by functions or loops that truncate the stream.
third line). Equivalent to:
\begin{verbatim}
- def islice(iterable, *args):
+ def islice(iterable, *args):
s = slice(*args)
- next, stop, step = s.start or 0, s.stop, s.step or 1
- for cnt, element in enumerate(iterable):
- if cnt < next:
- continue
- if stop is not None and cnt >= stop:
- break
- yield element
- next += step
+ it = iter(xrange(s.start or 0, s.stop or sys.maxint, s.step or 1))
+ nexti = it.next()
+ for i, element in enumerate(iterable):
+ if i == nexti:
+ yield element
+ nexti = it.next()
\end{verbatim}
If \var{start} is \code{None}, then iteration starts at zero.