题目描述:
给你一个整数列表L, 输出L的中位数(若结果为小数,则保留一位小数)。
例如: L=[0,1,2,3,4]
则输出:2
分析
求一个数组的中位数的思路。
- 先对数组进行排序。
- 判断这个数组是奇数还是偶数。
- 奇数就是中间的哪一个数。偶数就是 中间两个数的平均值。
题目有一个要求,如果结果是小数,保留一位。 我就在想,如果不是小数,是不是就不应该有小数位。 我做了一个判断。可以通过,不加这个判断,也可以通过。 因此,我感觉题目的描述和测试数据和我想的有点点不太对劲。
- 不加判断 ```python3 L.sort() lenght = len(L)
if lenght % 2 == 1: res = L[lenght//2] else: res = (L[lenght//2] + L[lenght//2-1] ) / 2 print(round(res, 1))
1
2
2. 加判断
if int(res) == res: print(res) else: print(round(res, 1)) ```