summaryrefslogtreecommitdiffstats
path: root/Doc/library/itertools.rst
diff options
context:
space:
mode:
Diffstat (limited to 'Doc/library/itertools.rst')
-rw-r--r--Doc/library/itertools.rst37
1 files changed, 10 insertions, 27 deletions
diff --git a/Doc/library/itertools.rst b/Doc/library/itertools.rst
index 368e40d..032c0b8 100644
--- a/Doc/library/itertools.rst
+++ b/Doc/library/itertools.rst
@@ -22,9 +22,8 @@ The tools are designed to combine readily with one another. This makes it easy
to construct more specialized tools succinctly and efficiently in pure Python.
For instance, SML provides a tabulation tool: ``tabulate(f)`` which produces a
-sequence ``f(0), f(1), ...``. This toolbox provides :func:`imap` and
-:func:`count` which can be combined to form ``imap(f, count())`` and produce an
-equivalent result.
+sequence ``f(0), f(1), ...``. But, this effect can be achieved in Python
+by combining :func:`map` and :func:`count` to form ``map(f, count())``.
Likewise, the functional tools are designed to work well with the high-speed
functions provided by the :mod:`operator` module.
@@ -138,7 +137,7 @@ loops that truncate the stream.
.. function:: count([n])
Make an iterator that returns consecutive integers starting with *n*. If not
- specified *n* defaults to zero. Often used as an argument to :func:`imap` to
+ specified *n* defaults to zero. Often used as an argument to :func:`map` to
generate consecutive data points. Also, used with :func:`izip` to add sequence
numbers. Equivalent to::
@@ -248,22 +247,6 @@ loops that truncate the stream.
yield x
-.. function:: imap(function, *iterables)
-
- Make an iterator that computes the function using arguments from each of the
- iterables. This function is the same as the built-in :func:`map` function.
- Equivalent to::
-
- def imap(function, *iterables):
- iterables = [iter(it) for it in iterables)
- while True:
- args = [next(it) for it in iterables]
- if function is None:
- yield tuple(args)
- else:
- yield function(*args)
-
-
.. function:: islice(iterable, [start,] stop [, step])
Make an iterator that returns selected elements from the iterable. If *start* is
@@ -421,7 +404,7 @@ loops that truncate the stream.
.. function:: repeat(object[, times])
Make an iterator that returns *object* over and over again. Runs indefinitely
- unless the *times* argument is specified. Used as argument to :func:`imap` for
+ unless the *times* argument is specified. Used as argument to :func:`map` for
invariant parameters to the called function. Also used with :func:`izip` to
create an invariant part of a tuple record. Equivalent to::
@@ -437,9 +420,9 @@ loops that truncate the stream.
.. function:: starmap(function, iterable)
Make an iterator that computes the function using arguments obtained from
- the iterable. Used instead of :func:`imap` when argument parameters are already
+ the iterable. Used instead of :func:`map` when argument parameters are already
grouped in tuples from a single iterable (the data has been "pre-zipped"). The
- difference between :func:`imap` and :func:`starmap` parallels the distinction
+ difference between :func:`map` and :func:`starmap` parallels the distinction
between ``function(a,b)`` and ``function(*c)``. Equivalent to::
def starmap(function, iterable):
@@ -507,7 +490,7 @@ can be combined. ::
Check 1202 is for $823.14
>>> import operator
- >>> for cube in imap(operator.pow, range(1,5), repeat(3)):
+ >>> for cube in map(operator.pow, range(1,5), repeat(3)):
... print(cube)
...
1
@@ -577,7 +560,7 @@ which incur interpreter overhead. ::
def tabulate(function):
"Return function(0), function(1), ..."
- return imap(function, count())
+ return map(function, count())
def nth(iterable, n):
"Returns the nth item or raise StopIteration"
@@ -603,7 +586,7 @@ which incur interpreter overhead. ::
def quantify(seq, pred=None):
"Count how many times the predicate is true in the sequence"
- return sum(imap(pred, seq))
+ return sum(map(pred, seq))
def padnone(seq):
"""Returns the sequence elements and then returns None indefinitely.
@@ -617,7 +600,7 @@ which incur interpreter overhead. ::
return chain.from_iterable(repeat(seq, n))
def dotproduct(vec1, vec2):
- return sum(imap(operator.mul, vec1, vec2))
+ return sum(map(operator.mul, vec1, vec2))
def flatten(listOfLists):
return list(chain.from_iterable(listOfLists))