Python的sum()函数返回一个可迭代对象中数字的和。

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

我要找的是返回乘积的函数。

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

我很确定这样一个函数存在,但我找不到它。


当前回答

使用这个

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

因为没有内置的prod函数。

其他回答

您还可以将您的数字列表编码为pd。然后使用pd.Series.product():

>>> import pandas as pd
>>> pd.Series([5,3,-1]).product()
-15
Numeric.product 

(或

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

)

numpy中有一个prod()可以完成您所要求的工作。

我更喜欢使用functools.reduce()和numpy.prod()的答案上面的答案a和b,但这里有另一个解决方案使用itertools.accumulate():

import itertools
import operator
prod = list(itertools.accumulate((3, 4, 5), operator.mul))[-1]

使用这个

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

因为没有内置的prod函数。