On 2/21/2023 12:32 PM, Axy via Python-list wrote:
On 21/02/2023 04:13, Hen Hanna wrote:
(A) print( max( * LisX ))
(B) print( sum( * LisX )) <------- Bad
syntax !!!
What's most surprising is.... (A) is ok, and (B) is not.
even tho' max() and sum() have (basically) the same
syntax... ( takes one arg , whch is a list )
They **don't** have basically the same signature, though. max() takes
either an iterable or two or more numbers. Using max(*list_) presents
it with a series of numbers, so that's OK.
sum() takes just one iterable (plus an optional start index). Using
sum(*list_) presents it with a series of numbers, and that does not
match its signature.
Check what I said:
>>> help(sum)
Help on built-in function sum in module builtins:
sum(iterable, /, start=0)
Return the sum of a 'start' value (default: 0) plus an iterable of
numbers
>>> help(max)
Help on built-in function max in module builtins:
max(...)
max(iterable, *[, default=obj, key=func]) -> value
max(arg1, arg2, *args, *[, key=func]) -> value
Why they have different signatures may be lost to the whims of history
and backwards compatibility...
i've been programming for many years... ( just knew to Python )
LOL, python is full of surprises. I'd definitely step into the same
piece of... Someday.
Of course 'Builtin functions' section explains that, but the
inconsistency is weird.
My response is absolutely useless, just two cents on the issue. Maybe
someone will fix that.
Axy.
--
https://mail.python.org/mailman/listinfo/python-list