Encontrar la media de una lista

Tengo que encontrar la media de una lista en Python. Este es mi código hasta ahora

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

Lo tengo para que sume los valores de la lista, pero no sé cómo hacer que los divida?

l = [15, 18, 2, 36, 12, 78, 5, 6, 9]
sum(l) / len(l)
Comentarios (8)
Solución

En Python 3.4+ puedes usar statistics.mean()

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

import statistics
statistics.mean(l)  # 20.11111111111111

En versiones anteriores de Python puedes hacer

sum(l) / len(l)

En Python 2 es necesario convertir len a float para obtener la división de float

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

No es necesario usar reduce. Es mucho más lento y fue eliminado en Python 3.

Comentarios (11)

¿Por qué usar reduce() para esto cuando Python tiene una función suma() perfectamente cromática?

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

(La función float() es necesaria para forzar a Python a hacer una división en coma flotante).

Comentarios (2)