什么是Python函数sum(),但乘法? 产品()?

Python的sum()函数返回迭代中的数字总和。

 sum([3,4,5]) == 3 + 4 + 5 == 12 

我正在寻找返回产品的function。

 somelib.somefunc([3,4,5]) == 3 * 4 * 5 == 60 

我很确定这样的function存在,但我找不到它。

实际上,Guido否决了这个想法: http : //bugs.python.org/issue1093

但是,正如在这个问题中所指出的,你可以很容易地做一个:

 from functools import reduce # Valid in Python 2.6+, required in Python 3 import operator reduce(operator.mul, (3, 4, 5), 1) 

没有一个内置的,但很容易推出自己的,如下所示:

 import operator def prod(factors): return reduce(operator.mul, factors, 1) 

查看这个问题的答案:

哪个Python模块适合列表中的数据操作?

有一个prod()在numpy,做你所要求的。

 Numeric.product 

( 要么

 reduce(lambda x,y:x*y,[3,4,5]) 

用这个

 def prod( iterable ): p= 1 for n in iterable: p *= n return p 

由于没有内置的prodfunction。

Interesting Posts