如何获得列表的中位数?

时间:2015-09-02 00:39:02

标签: python

我如何使用内置函数只使用它而不进行导入? 如果只有一个meian值,但是如果有2个中值,则它不起作用。

def medianoflist(list1):
    x = int((len(list1) + 1)/2)
    print(list1[x-1])

所以当我做list1 = [(1,2,3)]这样的事情时,它就有效了。但是当我做[(1,2,3,4)]之类的事情时,它输出2,这是较低的中值。对于这种情况,我需要利用上限中位数值和较低的中位数值,请帮助我无法弄明白。我也不能使用任何统计导入。

2 个答案:

答案 0 :(得分:2)

这包括两种情况:

def medianoflist(l):
    x = (l[int((len(l)-1)/2)] + l[int(len(l)/2)])/2
    print x

答案 1 :(得分:1)

我不确定你的内置功能是否只是"要求意味着根本没有进口,或没有第三方进口。如果标准库导入正常,那么从Python 3.4开始,您可以使用新的statistics模块:

import statistics
statistics.median([1, 2, 3, 4])
Out[2]: 2.5
statistics.median_low([1, 2, 3, 4])
Out[3]: 2