Feature suggestion: sum() ought to use a compensated summation algorithm
Thomas Dybdahl Ahle
lobais at gmail.com
Sat May 3 18:31:01 EDT 2008
On Sat, 2008-05-03 at 21:37 +0000, Ivan Illarionov wrote:
> On Sat, 03 May 2008 20:44:19 +0200, Szabolcs Horvát wrote:
>
> > Arnaud Delobelle wrote:
> >>
> >> sum() works for any sequence of objects with an __add__ method, not
> >> just floats! Your algorithm is specific to floats.
> >
> > This occurred to me also, but then I tried
> >
> > sum(['abc', 'efg'], '')
>
> Interesting, I always thought that sum is like shortcut of
> reduce(operator.add, ...), but I was mistaken.
>
> reduce() is more forgiving:
> reduce(operator.add, ['abc', 'efg'], '' ) # it works
> 'abcefg'
Hm, it works for lists:
sum(([1], [2]), [])
[1, 2]
However I find the seccond argument hack ugly.
Does the sum way have any performance advantages over the reduce way?
--
Best Regards,
Med Venlig Hilsen,
Thomas
More information about the Python-list
mailing list