Iskanje povprečja seznama

V Pythonu moram poiskati povprečje seznama. To je moja dosedanja koda

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

Dobil sem jo tako, da sešteva vrednosti na seznamu, vendar ne vem, kako naj jih razdelim?

l = [15, 18, 2, 36, 12, 78, 5, 6, 9]
sum(l) / len(l)
Komentarji (8)
Rešitev

V Pythonu 3.4+ lahko uporabite statistics.mean()

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

import statistics
statistics.mean(l)  # 20.11111111111111

V starejših različicah Pythona lahko uporabite

sum(l) / len(l)

V Pythonu 2 morate pretvoriti len v float, da dobite float delitev

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

Ni potrebe po uporabi reduce. Je veliko počasnejša in je bila v Pythonu 3 odstranjena.

Komentarji (11)

Zakaj bi za to uporabljali funkcijo reduce(), ko pa ima Python popolnoma kultivirano funkcijo sum()?

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

(Funkcija float() je potrebna, da se Python prisili v deljenje s plavajočo vejico.)

Komentarji (2)