列表python的产品

Reg*_*ald 2 python product python-3.x

可能重复:
返回列表的产品

有没有其他方法来获得列表的产品,而不是这样:

def prod(L):
 p=1
 for i in L:
   p= i * p
 return p
Run Code Online (Sandbox Code Playgroud)

这段代码是正确的,但我需要找到另一种方法来做到这一点.我真的找不到它.

app*_*tor 8

使用reduce(f, iterable[, initializer]):

>>> from operator import mul
>>> reduce(mul, [1, 2, 3], 1)
6
Run Code Online (Sandbox Code Playgroud)

reduce()抽象出以下模式: a ? b ? c ? d ? e ...其中?是二进制(左关联)运算符,即接受两个参数的函数.

  • 只需注意该问题被标记为“python-3.x”,并且在 Python 3 中,“reduce”函数不是内置函数。相反,它位于“functools”模块中。 (4认同)
  • @ phant0m还没有这个初始化器,当Dogbert写下他的评论时. (2认同)
  • 啊,是的,我现在明白了。在这种情况下,我建议您亲自回复该评论,以便未来的访问者看到错误已得到修复。 (2认同)

Dog*_*ert 5

>>> reduce(lambda x, y: x * y, [1, 2, 3], 1)
6
>>> reduce(lambda x, y: x * y, [], 1)
1
Run Code Online (Sandbox Code Playgroud)


Jon*_*nts 5

如果您被允许使用numpy

import numpy as np
product = np.product([1, 2, 3]) # returns 1.0 if empty list
Run Code Online (Sandbox Code Playgroud)