# [Python-Dev] Fwd: summing a bunch of numbers (or "whatevers")

**Alex Martelli
**
aleax@aleax.it

*Sun, 20 Apr 2003 08:38:20 +0200*

On Sunday 20 April 2003 07:59 am, Raymond Hettinger wrote:
>* > Now, I think the obvious approach would be to have a function sum,
*>* > callable with any non-empty homogeneous sequence (sequence of
*>* > items such that + can apply between them), returning the sequence's
*>* > summation -- now THAT might help for simplicity, clarity AND power.
*>*
*>* +1 -- this comes-up all the time.
*
Yes, I agree it does -- both in discussions (c.l.py, python-help -- dunno
'bout tutor, as I'm not following it) AND in practical use.
>* > I'm not
*>* > quite sure where it should go -- a builtin seems most natural (to keep
*>* > company with min and max, for example), but maybe that would be
*>* > too ambitious, and it should be in math or operator instead...
*>*
*>* __builtin__ is already too fat. math is for floats. operator is mostly
*>* for operators. Perhaps make a separate module for vector-to-scalar
*>* operations like min, max, product, average, moment, and dotproduct.
*
__builtin__ has 123 entries. ls Lib/*.py | wc finds 183 toplevel modules
(without even mentioning those modules that are already grouped into
packages). So, making new modules should be roughly as much of a
"fatness" problem as adding new builtins, at least, shouldn't it? min and
max are already built-ins. Computing average(x) as sum(x)/len(x) does
not seem too much of a problem. product, moment and dotproduct
appear to be "nice to have" rather than real needs.
True, math deals only with float stuff. But operator doesn't seem too
bad -- sure, it mostly exposes stuff that's already elsewhere in the
internals (operators AND others, such as countOf), but that could be
considered an implementation detail.
Alex