summaryrefslogtreecommitdiffstats
path: root/Doc/lib
diff options
context:
space:
mode:
authorRaymond Hettinger <python@rcn.com>2005-03-27 20:11:44 (GMT)
committerRaymond Hettinger <python@rcn.com>2005-03-27 20:11:44 (GMT)
commitfdf3bd6630a1797e05124c69ccfb4c07882ae9db (patch)
treefe85082c53bc5ea91bd5b0c8c6be43972ac07c15 /Doc/lib
parent267b868f23a85c6a63a06452c85487355cf9ab8a (diff)
downloadcpython-fdf3bd6630a1797e05124c69ccfb4c07882ae9db.zip
cpython-fdf3bd6630a1797e05124c69ccfb4c07882ae9db.tar.gz
cpython-fdf3bd6630a1797e05124c69ccfb4c07882ae9db.tar.bz2
SF patch #1171417: bug fix for islice() in docs
Diffstat (limited to 'Doc/lib')
-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 780ed55..9d7f7ca 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.