Трябва да намеря средната стойност на списък в Python. Това е моят код досега
l = [15, 18, 2, 36, 12, 78, 5, 6, 9]
print reduce(lambda x, y: x + y, l)
Направих го така, че да събира стойностите в списъка, но не знам как да го накарам да ги раздели?
l = [15, 18, 2, 36, 12, 78, 5, 6, 9]
sum(l) / len(l)
В Python 3.4+ можете да използвате statistics.mean()
l = [15, 18, 2, 36, 12, 78, 5, 6, 9]
import statistics
statistics.mean(l) # 20.11111111111111
При по-стари версии на Python можете да направите
sum(l) / len(l)
В Python 2 трябва да преобразувате len
в float, за да получите float деление
sum(l) / float(len(l))
Не е необходимо да се използва reduce
. То е много по-бавно и беше премахнато в Python 3.
Защо бихте използвали reduce()
за това, след като Python разполага с напълно удобната функция sum()
?
print sum(l) / float(len(l))
(Функцията float()
е необходима, за да принуди Python да извърши деление с плаваща запетая.)