diff options
author | Raymond Hettinger <python@rcn.com> | 2009-02-19 05:34:35 (GMT) |
---|---|---|
committer | Raymond Hettinger <python@rcn.com> | 2009-02-19 05:34:35 (GMT) |
commit | f9bce83e71c07ccd7b0ae1a75ea6912f0023b802 (patch) | |
tree | 5457b11a6eef3f2efc6f36368ee0eb3d13118193 | |
parent | 182edaefb515ece87d225494d79ccf7dd35d1ec1 (diff) | |
download | cpython-f9bce83e71c07ccd7b0ae1a75ea6912f0023b802.zip cpython-f9bce83e71c07ccd7b0ae1a75ea6912f0023b802.tar.gz cpython-f9bce83e71c07ccd7b0ae1a75ea6912f0023b802.tar.bz2 |
Add some cross-references to the docs. Simplify the python code equivalent for izip(). Supply an optional argument for the nth() recipe.
-rw-r--r-- | Doc/library/functions.rst | 11 | ||||
-rw-r--r-- | Doc/library/itertools.rst | 9 | ||||
-rw-r--r-- | Lib/test/test_itertools.py | 6 |
3 files changed, 16 insertions, 10 deletions
diff --git a/Doc/library/functions.rst b/Doc/library/functions.rst index fbb3f87..9de9db6 100644 --- a/Doc/library/functions.rst +++ b/Doc/library/functions.rst @@ -397,6 +397,9 @@ available. They are listed here in alphabetical order. iterable if function(item)]`` if function is not ``None`` and ``[item for item in iterable if item]`` if function is ``None``. + See :func:`itertools.filterfalse` for the complementary function that returns + elements of *iterable* for which *function* returns false. + .. function:: float([x]) @@ -1077,7 +1080,8 @@ available. They are listed here in alphabetical order. default). They have no other explicit functionality; however they are used by Numerical Python and other third party extensions. Slice objects are also generated when extended indexing syntax is used. For example: - ``a[start:stop:step]`` or ``a[start:stop, i]``. + ``a[start:stop:step]`` or ``a[start:stop, i]``. See :func:`itertools.islice` + for an alternate version that returns an iterator. .. function:: sorted(iterable[, cmp[, key[, reverse]]]) @@ -1160,6 +1164,7 @@ available. They are listed here in alphabetical order. and are not allowed to be strings. The fast, correct way to concatenate a sequence of strings is by calling ``''.join(sequence)``. Note that ``sum(range(n), m)`` is equivalent to ``reduce(operator.add, range(n), m)`` + To add floating point values with extended precision, see :func:`math.fsum`\. .. versionadded:: 2.3 @@ -1329,7 +1334,9 @@ available. They are listed here in alphabetical order. :func:`xrange` is intended to be simple and fast. Implementations may impose restrictions to achieve this. The C implementation of Python restricts all arguments to native C longs ("short" Python integers), and also requires that - the number of elements fit in a native C long. + the number of elements fit in a native C long. If a larger range is needed, + an alternate version can be crafted using the :mod:`itertools` module: + ``islice(count(start, step), (stop-start+step-1)//step)``. .. function:: zip([iterable, ...]) diff --git a/Doc/library/itertools.rst b/Doc/library/itertools.rst index 6fa1978..299d769 100644 --- a/Doc/library/itertools.rst +++ b/Doc/library/itertools.rst @@ -427,8 +427,7 @@ loops that truncate the stream. # izip('ABCD', 'xy') --> Ax By iterables = map(iter, iterables) while iterables: - result = [it.next() for it in iterables] - yield tuple(result) + yield yield tuple(map(next, iterables)) .. versionchanged:: 2.4 When no iterables are specified, returns a zero length iterator instead of @@ -702,9 +701,9 @@ which incur interpreter overhead. "Return function(0), function(1), ..." return imap(function, count(start)) - def nth(iterable, n): - "Returns the nth item or None" - return next(islice(iterable, n, None), None) + def nth(iterable, n, default=None): + "Returns the nth item or a default value" + return next(islice(iterable, n, None), default) def quantify(iterable, pred=bool): "Count how many times the predicate is true" diff --git a/Lib/test/test_itertools.py b/Lib/test/test_itertools.py index 81a052b..9eb1389 100644 --- a/Lib/test/test_itertools.py +++ b/Lib/test/test_itertools.py @@ -1401,9 +1401,9 @@ Samuele ... "Return function(0), function(1), ..." ... return imap(function, count(start)) ->>> def nth(iterable, n): -... "Returns the nth item or None" -... return next(islice(iterable, n, None), None) +>>> def nth(iterable, n, default=None): +... "Returns the nth item or a default value" +... return next(islice(iterable, n, None), default) >>> def quantify(iterable, pred=bool): ... "Count how many times the predicate is true" |