Python中是否有内置的产品()?

我一直在阅读教程和书籍,但是我没有发现任何内置的产品function,即与sum()相同的types,但是找不到像prod()

我可以通过导入mul()运算符来find列表中项目的唯一方法吗?

恩,那就对了。 Guido 拒绝了内置prod()函数的想法 ,因为他认为这很less需要。

正如你所build议的,使用reduce()operator.mul()来创build自己的代码并不困难:

 def prod(iterable): return reduce(operator.mul, iterable, 1) >>> prod(range(1, 5)) 24 

在Python 3中, reduce()函数被移到了functools模块,所以你需要添加:

 from functools import reduce 

作为一个侧面说明, prod()的主要动机用例是计算阶乘。 我们已经在math模块中支持这个function:

 >>> import math >>> math.factorial(10) 3628800 

Python中没有product ,但可以将其定义为

 def product(iterable): return reduce(operator.mul, iterable, 1) 

或者,如果您有NumPy,请使用numpy.product

由于在Python 3.0中已经删除了reduce()函数 ,所以你必须采取不同的方法。

你可以使用functools.reduce()来改变这个变化:

 product = functools.reduce(operator.mul, iterable, 1) 

或者,如果你想遵循python团队的精神(删除reduce()是因为他们认为会更具可读性),可以通过循环来实现:

 product = 1 for x in iterable: product *= x 
 from numpy import multiply, product list1 = [2,2,2] list2 = [2,2,2] mult = 3 prod_of_lists = multiply(list1,list2) >>>[4,4,4] prod_of_list_by_mult = multiply(list1,mult) >>>[6,6,6] prod_of_single_array = product(list1) >>>8 

numpy有许多非常酷的函数列表!