Python 3.4有statistics.median :
返回数字数据的中位数(中间值)。
当数据点数为奇数时,返回中间数据点。 当数据点的数量是偶数时,通过取两个中间值的平均值来插值中值:
>>> median([1, 3, 5]) 3 >>> median([1, 3, 5, 7]) 4.0
用法:
import statistics items = [1, 2, 3, 6, 8] statistics.median(items) #>>> 3
types也很小心:
statistics.median(map(float, items)) #>>> 3.0 from decimal import Decimal statistics.median(map(Decimal, items)) #>>> Decimal('3')
对于python-2.x :
使用numpy.median()来创build一个单行的函数:
>>> from numpy import median >>> median([1, -4, -1, -1, 1, -3]) -1.0
或者, 写一个函数 :
def median(lst): n = len(lst) if n < 1: return None if n % 2 == 1: return sorted(lst)[n//2] else: return sum(sorted(lst)[n//2-1:n//2+1])/2.0
>>> median([-5, -5, -3, -4, 0, -1]) -3.5
对于python-3.x ,使用statistics.median :
>>> from statistics import median >>> median([5, 2, 3, 8, 9, -2]) 4.0
sorted()函数对此非常有帮助。 使用sorting后的函数对列表进行sorting,然后简单地返回中间值(或者如果列表中包含偶数个元素,则平均中间两个值)。
def median(lst): sortedLst = sorted(lst) lstLen = len(lst) index = (lstLen -