Actualizar:
En Python 3.8, la función prod se agregó al módulo matemático . Ver: math.prod () .
Información anterior: Python 3.7 y anteriores
La función que está buscando se llamaría prod () o product () pero Python no tiene esa función. Entonces, necesitas escribir el tuyo (lo cual es fácil).
Pronunciamiento en prod ()
Si, eso es correcto. Guido rechazó la idea de una función prod () incorporada porque pensó que rara vez era necesaria.
Alternativa con reduce ()
Como sugirió, no es difícil hacer el suyo usando reduce () y operator.mul () :
from functools import reduce # Required in Python 3
def prod(iterable):
return reduce(operator.mul, iterable, 1)
>>> prod(range(1, 5))
24
Tenga en cuenta que en Python 3, la función reduce () se movió al módulo functools .
Caso específico: factoriales
Como nota al margen, el principal caso de uso motivador para prod () es calcular factoriales. Ya tenemos soporte para eso en el módulo de matemáticas :
>>> import math
>>> math.factorial(10)
3628800
Alternativa con logaritmos
Si sus datos consisten en flotantes, puede calcular un producto usando sum () con exponentes y logaritmos:
>>> from math import log, exp
>>> data = [1.2, 1.5, 2.5, 0.9, 14.2, 3.8]
>>> exp(sum(map(log, data)))
218.53799999999993
>>> 1.2 * 1.5 * 2.5 * 0.9 * 14.2 * 3.8
218.53799999999998
Tenga en cuenta que el uso de log () requiere que todas las entradas sean positivas.