什么是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
由于没有内置的prod
function。