列表python的产品

时间:2012-08-04 10:11:35

标签: python python-3.x product

  

可能重复:
  Returning the product of a list

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

def prod(L):
 p=1
 for i in L:
   p= i * p
 return p

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

4 个答案:

答案 0 :(得分:8)

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

>>> from operator import mul
>>> reduce(mul, [1, 2, 3], 1)
6

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

答案 1 :(得分:4)

>>> reduce(lambda x, y: x * y, [1, 2, 3], 1)
6
>>> reduce(lambda x, y: x * y, [], 1)
1

答案 2 :(得分:4)

如果您被允许使用numpy

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

答案 3 :(得分:1)

def prod(array):
    if len(array)==0: return 1
    else: return array[0]*prod(array[1:])