Improve docs:
* Simplify the pure python examples * Add a quantify() example
This commit is contained in:
parent
f5c96fb74d
commit
c7d7766fda
|
@ -78,7 +78,7 @@ by functions or loops that truncate the stream.
|
||||||
Make an iterator that returns consecutive integers starting with \var{n}.
|
Make an iterator that returns consecutive integers starting with \var{n}.
|
||||||
Does not currently support python long integers. Often used as an
|
Does not currently support python long integers. Often used as an
|
||||||
argument to \function{imap()} to generate consecutive data points.
|
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}
|
\begin{verbatim}
|
||||||
def count(n=0):
|
def count(n=0):
|
||||||
|
@ -103,9 +103,7 @@ by functions or loops that truncate the stream.
|
||||||
for element in iterable:
|
for element in iterable:
|
||||||
yield element
|
yield element
|
||||||
saved.append(element)
|
saved.append(element)
|
||||||
if len(saved) == 0:
|
while saved:
|
||||||
return
|
|
||||||
while True:
|
|
||||||
for element in saved:
|
for element in saved:
|
||||||
yield element
|
yield element
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
|
@ -124,13 +122,12 @@ by functions or loops that truncate the stream.
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
def dropwhile(predicate, iterable):
|
def dropwhile(predicate, iterable):
|
||||||
iterable = iter(iterable)
|
iterable = iter(iterable)
|
||||||
while True:
|
for x in iterable:
|
||||||
x = iterable.next()
|
if not predicate(x):
|
||||||
if predicate(x): continue # drop when predicate is true
|
yield x
|
||||||
|
break
|
||||||
|
for x in iterable:
|
||||||
yield x
|
yield x
|
||||||
break
|
|
||||||
while True:
|
|
||||||
yield iterable.next()
|
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
\end{funcdesc}
|
\end{funcdesc}
|
||||||
|
|
||||||
|
@ -209,9 +206,7 @@ by functions or loops that truncate the stream.
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
def islice(iterable, *args):
|
def islice(iterable, *args):
|
||||||
s = slice(*args)
|
s = slice(*args)
|
||||||
next = s.start or 0
|
next, stop, step = s.start or 0, s.stop, s.step or 1
|
||||||
stop = s.stop
|
|
||||||
step = s.step or 1
|
|
||||||
for cnt, element in enumerate(iterable):
|
for cnt, element in enumerate(iterable):
|
||||||
if cnt < next:
|
if cnt < next:
|
||||||
continue
|
continue
|
||||||
|
@ -278,9 +273,7 @@ by functions or loops that truncate the stream.
|
||||||
|
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
def takewhile(predicate, iterable):
|
def takewhile(predicate, iterable):
|
||||||
iterable = iter(iterable)
|
for x in iterable:
|
||||||
while True:
|
|
||||||
x = iterable.next()
|
|
||||||
if predicate(x):
|
if predicate(x):
|
||||||
yield x
|
yield x
|
||||||
else:
|
else:
|
||||||
|
@ -358,6 +351,10 @@ from building blocks.
|
||||||
... "Returns True if pred(x) is False for every element in the iterable"
|
... "Returns True if pred(x) is False for every element in the iterable"
|
||||||
... return True not in imap(pred, seq)
|
... 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):
|
>>> def padnone(seq):
|
||||||
... "Returns the sequence elements and then returns None indefinitely"
|
... "Returns the sequence elements and then returns None indefinitely"
|
||||||
... return chain(seq, repeat(None))
|
... return chain(seq, repeat(None))
|
||||||
|
|
Loading…
Reference in New Issue