[Python-Dev] sum(...) limitation
alexander.belopolsky at gmail.com
Sat Aug 9 04:20:37 CEST 2014
On Fri, Aug 8, 2014 at 8:56 PM, Ethan Furman <ethan at stoneleaf.us> wrote:
> I don't use sum at all, or at least very rarely, and it still irritates me.
You are not alone. When I see sum([a, b, c]), I think it is a + b + c, but
in Python it is 0 + a + b + c. If we had a "join" operator for strings
that is different form + - then sure, I would not try to use sum to join
strings, but we don't. I have always thought that sum(x) is just a
shorthand for reduce(operator.add, x), but again it is not so in Python.
While "sum should only be used for numbers," it turns out it is not a
good choice for floats - use math.fsum. While "strings are blocked because
sum is slow," numpy arrays with millions of elements are not. And try to
explain to someone that sum(x) is bad on a numpy array, but abs(x) is fine.
Why have builtin sum at all if its use comes with so many caveats?
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Python-Dev