Trouver la moyenne d'une liste

Je dois trouver la moyenne d'une liste en Python. Voici mon code jusqu'à présent

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

J'ai réussi à additionner les valeurs de la liste, mais je ne sais pas comment faire pour les diviser ?

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

Sous Python 3.4+, vous pouvez utiliser [statistics.mean()][1].

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

import statistics
statistics.mean(l)  # 20.11111111111111

Sur les anciennes versions de Python, vous pouvez utiliser

sum(l) / len(l)

Sur Python 2, vous devez convertir len en flottant pour obtenir la division en flottant.

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

Il n'est pas nécessaire d'utiliser reduce. Elle est beaucoup plus lente et a été [supprimée][2] dans Python 3.

[1] : https://docs.python.org/library/statistics.html#statistics.mean [2] : https://www.artima.com/weblogs/viewpost.jsp?thread=98196

Commentaires (11)

Pourquoi utiliser reduce() pour cela alors que Python possède une fonction sum() parfaitement cromulente ?

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

(Le float() est nécessaire pour forcer Python à faire une division en virgule flottante).

Commentaires (2)