[Tutor] simple math but I can't quite get it

Michael P. Reilly arcege@shore.net
Sat, 10 Feb 2001 08:53:53 -0500 (EST)


> There are other ways of adding numbers; one of these ways is the
> "functional" approach:
> 
> ###
> >>> def add(x, y): return x + y
> ... 
> >>> sum = reduce(add, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
> >>> sum
> 55
> ###
> 
> This, too, tells Python to: "Reduce all those list elements into a single
> thing, by using the add() function repeatedly."  It might be a little
> weird because we're feeding the add() function itself into the reduce()
> function, but it's not too hard once you play with it.
> 
> Here's another example of using reduce to find the product of all numbers
> in a list:
> 
> ###
> >>> def mul(x, y): return x * y
> ...
> >>> product = reduce(mul, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
> >>> product
> 3628800
> ###

These functions are also built in to the operator module.

>>> l = range(1, 11)
>>> l
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> import operator
>>> reduce(operator.add, l)
55
>>> reduce(operator.mul, l)
3628800
>>>

Most all the Python operators have function analogs in the `operator'
module.

  -Arcege

-- 
------------------------------------------------------------------------
| Michael P. Reilly, Release Manager  | Email: arcege@shore.net        |
| Salem, Mass. USA  01970             |                                |
------------------------------------------------------------------------