Aktualisieren:
In Python 3.8 wurde die Prod- Funktion zum Mathematikmodul hinzugefügt . Siehe: math.prod () .
Ältere Informationen: Python 3.7 und früher
Die gesuchte Funktion würde prod () oder product () heißen, aber Python hat diese Funktion nicht. Sie müssen also Ihre eigenen schreiben (was einfach ist).
Aussprache auf prod ()
Ja, das ist richtig. Guido lehnte die Idee einer eingebauten Funktion prod () ab, weil er dachte, dass sie selten benötigt würde.
Alternative mit reduzieren ()
Wie Sie vorgeschlagen haben, ist es nicht schwer, mit redu () und operator.mul () eigene zu erstellen :
from functools import reduce # Required in Python 3
def prod(iterable):
return reduce(operator.mul, iterable, 1)
>>> prod(range(1, 5))
24
Beachten Sie, dass in Python 3 die Funktion redu () in das functools-Modul verschoben wurde .
Sonderfall: Fakultäten
Nebenbei bemerkt, der primäre motivierende Anwendungsfall für prod () ist die Berechnung von Fakultäten. Dafür haben wir bereits Unterstützung im Mathematikmodul :
>>> import math
>>> math.factorial(10)
3628800
Alternative mit Logarithmen
Wenn Ihre Daten aus Gleitkommazahlen bestehen, können Sie ein Produkt mit sum () mit Exponenten und Logarithmen berechnen :
>>> 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
Beachten Sie, dass für die Verwendung von log () alle Eingaben positiv sind.