Memperbarui:
Dalam Python 3.8, fungsi prod ditambahkan ke modul matematika . Lihat: math.prod () .
Info yang lebih lama: Python 3.7 dan sebelumnya
Fungsi yang Anda cari akan disebut prod () atau product () tetapi Python tidak memiliki fungsi itu. Jadi, Anda perlu menulis sendiri (yang mudah).
Pengumuman pada prod ()
Ya itu betul. Guido menolak ide untuk fungsi built-in prod () karena dia pikir itu jarang dibutuhkan.
Alternatif dengan mengurangi ()
Seperti yang Anda sarankan, tidak sulit untuk membuat Anda sendiri menggunakan reduce () dan operator.mul () :
from functools import reduce # Required in Python 3
def prod(iterable):
return reduce(operator.mul, iterable, 1)
>>> prod(range(1, 5))
24
Catatan, dalam Python 3, fungsi pengurangan () dipindahkan ke modul functools .
Kasus khusus: faktorial
Sebagai catatan, kasus penggunaan motivasi utama untuk prod () adalah untuk menghitung faktorial. Kami sudah memiliki dukungan untuk itu dalam modul matematika :
>>> import math
>>> math.factorial(10)
3628800
Alternatif dengan logaritma
Jika data Anda terdiri dari float, Anda dapat menghitung produk menggunakan jumlah () dengan eksponen dan logaritma:
>>> 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
Catatan, penggunaan log () mensyaratkan bahwa semua input positif.