题目 8: 求中位数¶
描述¶
给你一个list L, 如 L=[0,1,2,3,4], 输出L的中位数(若结果为小数,则保留一位小数)。
solve¶
#若有n个数,n为奇数,则选择第(n+1)/2个为中位数,若n为偶数,则中位数是(n/2以及n/2+1)的平均数
#这道题感觉有问题,因为按ac的这种写法,算5.5的话,得到的结果是3位小数,打印出来也是3位小数,不合题意啊
#主要是学一下浮点运算/2.0,其他就算了吧
L.sort()
length = len( L )
if length % 2 != 0 :
num = L[ length // 2 ]
if isinstance( num,int ):
print( num )
else :
print( "%.1f" % num )
else :
num1 = L[ ( length // 2 ) - 1 ]
num2 = L[ ( length // 2 ) ]
num = num1 + num2
print( num / 2.0 )