Python的sum()函数返回一个可迭代对象中数字的和。
sum([3,4,5]) == 3 + 4 + 5 == 12
我要找的是返回乘积的函数。
somelib.somefunc([3,4,5]) == 3 * 4 * 5 == 60
我很确定这样一个函数存在,但我找不到它。
Python的sum()函数返回一个可迭代对象中数字的和。
sum([3,4,5]) == 3 + 4 + 5 == 12
我要找的是返回乘积的函数。
somelib.somefunc([3,4,5]) == 3 * 4 * 5 == 60
我很确定这样一个函数存在,但我找不到它。
当前回答
Numeric.product
(或
reduce(lambda x,y:x*y,[3,4,5])
)
其他回答
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函数。
也许不是“内置”,但我认为它是内置的。不管怎样,使用numpy
import numpy
prod_sum = numpy.prod(some_list)
它没有内置的,但你可以简单地自己滚动,如下所示:
import operator
def prod(factors):
return reduce(operator.mul, factors, 1)
请看这个问题的答案:
哪个Python模块适合在列表中进行数据操作?
实际上,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)