题目要求:队列表内的数字求中间数
如果列表内元素数量为奇数,则排序后取排序位置最中间的数值。
如果列表内元素数量为偶数,则取排序后排序位置最中间的2个数值的平均数
代码如下:
def median(s):
n=len(s) #计算列表内元素数量
if n==1: #这个要非常注意,当元素只有一个的时候,直接取值
return s[0]
elif n%2!=0: #如果元素数量为奇数
m=sorted(s) #排序一下
mid=m[(n-1)//2] #中间值等于元素总数量减一以后除以2,记得要用//
return mid
else:
m=sorted(s)
mid=float(m[n//2-1]+m[n//2])/2 #如果是偶数,取元素数量//2后减一位的那个值,以及元素数量//2的那个值,记得最后要用float,不然没有小数点
return mid