Trovare la media di un elenco

Devo trovare la media di una lista in Python. Questo è il mio codice finora

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

Ho fatto in modo che sommi i valori della lista, ma non so come fare per dividerli?

l = [15, 18, 2, 36, 12, 78, 5, 6, 9]
sum(l) / len(l)
Commentari (8)
Soluzione

Su Python 3.4+ potete usare statistics.mean()

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

import statistics
statistics.mean(l)  # 20.11111111111111

Sulle vecchie versioni di Python si può fare

sum(l) / len(l)

Su Python 2 è necessario convertire len in un float per ottenere la divisione in float

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

Non c'è bisogno di usare reduce. È molto più lento ed è stato rimosso in Python 3.

Commentari (11)

Perché dovreste usare reduce() per questo quando Python ha una funzione sum() perfettamente cromulata?

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

(Il float() è necessario per forzare Python a fare una divisione in virgola mobile).

Commentari (2)