mirror of
https://github.com/python/cpython.git
synced 2025-10-02 05:12:23 +00:00
Issue 7402: Improve reduce() example in the python idioms how-to.
This commit is contained in:
parent
15c2cec4fd
commit
48d1928b72
1 changed files with 14 additions and 15 deletions
|
@ -281,23 +281,22 @@ Compare::
|
||||||
More useful functions in :mod:`os.path`: :func:`basename`, :func:`dirname` and
|
More useful functions in :mod:`os.path`: :func:`basename`, :func:`dirname` and
|
||||||
:func:`splitext`.
|
:func:`splitext`.
|
||||||
|
|
||||||
There are also many useful built-in functions people seem not to be aware of for
|
There are also many useful built-in functions people seem not to be aware of
|
||||||
some reason: :func:`min` and :func:`max` can find the minimum/maximum of any
|
for some reason: :func:`min` and :func:`max` can find the minimum/maximum of
|
||||||
sequence with comparable semantics, for example, yet many people write their own
|
any sequence with comparable semantics, for example, yet many people write
|
||||||
:func:`max`/:func:`min`. Another highly useful function is :func:`reduce`. A
|
their own :func:`max`/:func:`min`. Another highly useful function is
|
||||||
classical use of :func:`reduce` is something like ::
|
:func:`reduce` which can be used to repeatly apply a binary operation to a
|
||||||
|
sequence, reducing it to a single value. For example, compute a factorial
|
||||||
|
with a series of multiply operations::
|
||||||
|
|
||||||
import sys, operator
|
>>> n = 4
|
||||||
nums = map(float, sys.argv[1:])
|
>>> import operator
|
||||||
print reduce(operator.add, nums)/len(nums)
|
>>> reduce(operator.mul, range(1, n+1))
|
||||||
|
24
|
||||||
|
|
||||||
This cute little script prints the average of all numbers given on the command
|
When it comes to parsing numbers, note that :func:`float`, :func:`int` and
|
||||||
line. The :func:`reduce` adds up all the numbers, and the rest is just some
|
:func:`long` all accept string arguments and will reject ill-formed strings
|
||||||
pre- and postprocessing.
|
by raising an :exc:`ValueError`.
|
||||||
|
|
||||||
On the same note, note that :func:`float`, :func:`int` and :func:`long` all
|
|
||||||
accept arguments of type string, and so are suited to parsing --- assuming you
|
|
||||||
are ready to deal with the :exc:`ValueError` they raise.
|
|
||||||
|
|
||||||
|
|
||||||
Using Backslash to Continue Statements
|
Using Backslash to Continue Statements
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue