Egy lista átlagának megkeresése

Egy lista átlagát kell megkeresnem Pythonban. Ez az én kódom eddig

l = [15, 18, 2, 36, 12, 78, 5, 6, 9]
print reduce(lambda x, y: x + y, l)

I've kaptam meg, hogy összeadja a listában lévő értékeket, de nem tudom, hogyan lehet azt elérni, hogy ossza őket?

l = [15, 18, 2, 36, 12, 78, 5, 6, 9]
sum(l) / len(l)
Kommentárok (8)
Megoldás

Python 3.4+ esetén használhatod a statistics.mean()

l = [15, 18, 2, 36, 12, 78, 5, 6, 9]

import statistics
statistics.mean(l)  # 20.11111111111111

A Python régebbi verzióinál a

sum(l) / len(l)

Python 2-nél a len-t át kell alakítanod lebegővé, hogy megkapd a lebegő osztást.

sum(l) / float(len(l))

Nincs szükség a reduce használatára. Ez sokkal lassabb, és a Python 3-ban eltávolították.

Kommentárok (11)

Miért használnád erre a reduce() függvényt, amikor a Pythonban van egy tökéletesen cromulens sum() függvény?

print sum(l) / float(len(l))

(A float() azért szükséges, hogy a Python rákényszerítse a lebegőpontos osztást.)

Kommentárok (2)