Găsirea mediei unei liste

Trebuie să găsesc media unei liste în Python. Acesta este codul meu de până acum

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

L'am obținut astfel încât să însumeze valorile din listă, dar nu știu cum să fac să le împartă între ele?

l = [15, 18, 2, 36, 12, 78, 5, 6, 9]
sum(l) / len(l)
Comentarii (8)
Soluția

Pe Python 3.4+ puteți folosi statistics.mean()

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

import statistics
statistics.mean(l)  # 20.11111111111111

Pe versiunile mai vechi de Python puteți folosi

sum(l) / len(l)

Pe Python 2 trebuie să convertiți len în float pentru a obține diviziunea float

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

Nu este necesar să folosiți reduce. Este mult mai lent și a fost eliminat în Python 3.

Comentarii (11)

De ce ați folosi reduce() pentru acest lucru când Python are o funcție sum() perfect cromulentă?

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

(Funcția float() este necesară pentru a forța Python să facă o împărțire în virgulă mobilă).

Comentarii (2)