feature request: mul
Michele Simionato
mis6 at pitt.edu
Wed Jun 11 12:33:33 EDT 2003
I like the new builtin 'sum', actually I missed it from my very first
Python program (I was doing hystograms at that time). Here is the question:
is there any hope to have a corrisponding 'mul' in the near future?
Of course, you could use 'mul' to compute factorials, bu my motivation is
mainly for logical constructs.
At the present, instead of
if condition[0] or condition[1] or .... or condition[42]:
dosomething()
I can use (using a comment to make crystal clear what the code is doing)
if sum(condition): # multi_or
dosomething()
In the same sense, I would like to abbreviate
if condition[0] and condition[1] and .... and condition[42]:
dosomething()
as
if mul(condition): # multi_and
dosomething()
I know I could use
import operator
multi_and=lambda it: reduce(operator.mul,it)
if multi_and(condition):
dosomething()
but frankly it is too ugly for my taste. Having
'sum' and 'mul' the use cases for 'reduce' would
drop, which I think is a good thing.
Apart for boolean algebra, I think a 'mul' with
the signature
mul(iterable, start=1)
would naturally complement 'sum'. Moreover,
the implementation would be trivial and I don't
see why we should not have it.
P.S. BTW, I like the concept of reduce, but
not the syntax, and that is the reason why
I *never* use 'reduce' in my programs. A more
sensible syntax would have been something
like
apply('+',iterable)
or
apply('*',iterable)
but of course apply had another meaning.
Michele
More information about the Python-list
mailing list