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)
这段代码是正确的,但我需要找到另一种方法来做到这一点.我真的找不到它.
使用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 ...其中?是二进制(左关联)运算符,即接受两个参数的函数.
>>> 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)
如果您被允许使用numpy:
import numpy as np
product = np.product([1, 2, 3]) # returns 1.0 if empty list
Run Code Online (Sandbox Code Playgroud)