Python代码阅读合集介绍:为什么不推荐Python初学者直接阅读项目源码实现计算一个列表中位数的功能。本文阅读的代码片段来自30-seconds-of-python。mediandefmedian(list):list.sort()list_length=len(list)iflist_length%2==0:return(list[int(list_length/2)-1]+list[int(list_length/2)])/2returnlist[int(list_length/2)]#EXAMPLESmedian([1,2,3])#2median([1,2,3,4])#2.5median函数接收一个列表,然后计算它的中位数并返回。中位数可以将一个数集或一个列表分成数相等的上下两部分。对于一组有限数量的数据,中位数是这样一个数:这组数据中有一半数据比它大,另一半数据比它小。计算有限列表的中值首先需要对列表进行排序。如果数据个数为奇数,则中间的数据为该组数据的中位数;如果数据个数为偶数,则中间两个数据的算术平均值为该组数据的中位数。函数median首先对列表进行排序,然后根据列表长度是否为偶数(list_length%2==0),以不同的方式计算中位数。%是余数运算符。列表长度为偶数的情况:因为列表下标是从0开始计数的,所以list_length/2和(list_length/2)-1分别是列表中间的两个数。这两个数的算术平均值就是中位数。当列表长度为奇数时:列表长度不能被2整除,使用int()进行强制转换,会四舍五入为零(如果是正数,则向下舍入,如果是为负数,则向上取整)。所以int(list_length/2)是列表中间的数字,中位数。当n为奇数时,int(n/2)=(n-1)/2为整数。列表的起始下标为0,结束下标为n-1,因为(n-1)/2-0=(n-1)-(n-1)/2,所以(n-1)/2为中位数下标。
