Finne gjennomsnittet av en liste

Jeg må finne gjennomsnittet av en liste i Python. Dette er koden min så langt

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

Jeg har fått den til å legge sammen verdiene i listen, men jeg vet ikke hvordan jeg skal få den til å dele på dem?

l = [15, 18, 2, 36, 12, 78, 5, 6, 9]
sum(l) / len(l)
Kommentarer (8)
Løsning

I Python 3.4+ kan du bruke statistics.mean().

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

import statistics
statistics.mean(l)  # 20.11111111111111

I eldre versjoner av Python kan du bruke

sum(l) / len(l)

I Python 2 må du konvertere len til en float for å få float-divisjon.

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

Det er ikke nødvendig å bruke reduce. Det er mye tregere og ble fjernet i Python 3.

Kommentarer (11)

Hvorfor skulle du bruke reduce() til dette når Python har en perfekt funksjon, sum()?

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

(float() er nødvendig for å tvinge Python til å foreta en divisjon med flytende komma).

Kommentarer (2)