Improve docs:

* Simplify the pure python examples
* Add a quantify() example
This commit is contained in:
Raymond Hettinger 2003-08-08 02:40:28 +00:00
parent f5c96fb74d
commit c7d7766fda
1 changed files with 13 additions and 16 deletions

View File

@ -78,7 +78,7 @@ by functions or loops that truncate the stream.
Make an iterator that returns consecutive integers starting with \var{n}.
Does not currently support python long integers. Often used as an
argument to \function{imap()} to generate consecutive data points.
Also, used in \function{izip()} to add sequence numbers. Equivalent to:
Also, used with \function{izip()} to add sequence numbers. Equivalent to:
\begin{verbatim}
def count(n=0):
@ -103,9 +103,7 @@ by functions or loops that truncate the stream.
for element in iterable:
yield element
saved.append(element)
if len(saved) == 0:
return
while True:
while saved:
for element in saved:
yield element
\end{verbatim}
@ -124,13 +122,12 @@ by functions or loops that truncate the stream.
\begin{verbatim}
def dropwhile(predicate, iterable):
iterable = iter(iterable)
while True:
x = iterable.next()
if predicate(x): continue # drop when predicate is true
for x in iterable:
if not predicate(x):
yield x
break
for x in iterable:
yield x
break
while True:
yield iterable.next()
\end{verbatim}
\end{funcdesc}
@ -209,9 +206,7 @@ by functions or loops that truncate the stream.
\begin{verbatim}
def islice(iterable, *args):
s = slice(*args)
next = s.start or 0
stop = s.stop
step = s.step or 1
next, stop, step = s.start or 0, s.stop, s.step or 1
for cnt, element in enumerate(iterable):
if cnt < next:
continue
@ -278,9 +273,7 @@ by functions or loops that truncate the stream.
\begin{verbatim}
def takewhile(predicate, iterable):
iterable = iter(iterable)
while True:
x = iterable.next()
for x in iterable:
if predicate(x):
yield x
else:
@ -358,6 +351,10 @@ from building blocks.
... "Returns True if pred(x) is False for every element in the iterable"
... return True not in imap(pred, seq)
>>> def quantify(pred, seq):
... "Count how many times the predicate is True in the sequence"
... return sum(imap(pred, seq))
>>> def padnone(seq):
... "Returns the sequence elements and then returns None indefinitely"
... return chain(seq, repeat(None))