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?
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.
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.)