题目描述
给你一个整数列表L, 输出L的中位数(若结果为小数,则保留一位小数)。
例如: L=[0,1,2,3,4]
则输出:2
题目来源于PythonTip,中位数的计算取决于元素的个数,如果元素个数为奇数个,直接取中间的下标即可,如果为偶数,需要计算中间两个的和,再取平均值。但是python需要注意整除和除法与其他语言不一样。
def solve_it():
L.sort()
if len(L) % 2 == 0:
sub = L[len(L) // 2 - 1] + L[len(L) // 2]
if sub % 2 == 0:
result = sub // 2
else:
result = round(sub/2.0, 1) # 这里需要注意,除以2.0,或者可以乘以0.5,但是不能除以2,原因未知
else:
result = L[len(L) // 2]
return result
print(solve_it())