def median(L):
length = len(L)
L.sort()
print 'List = ', L
if (length % 2 == 1): #Length is odd
index = math.ceil(length / 2)
index = int(index)
for i in range(0, length + 1):
if i == index:
print 'Median = ', L[i]
print 'Median = %.2f' % (L[i])
return L[i]
elif (length % 2 == 0): #Length is even
index = math.floor(length / 2)
lower = int(index) - 1
upper = int(index)
print L[lower]
print L[upper]
median = ((L[upper] + L[lower]) / 2)
median = float(median)
print 'Median = %.2f' % (median)
return median
中位数(L)
Python 3.4
假设我使用此列表 L = [98,75,92,87,89,90,92,87]
当我对列表进行排序并找到两个中间数字时,我得到89和90 ...但是,我尝试取这两个数字的平均值
中位数=((L [上] + L [下])/ 2)
并返回89.00而不是89.50
任何想法如何解决这个问题? 感谢
答案 0 :(得分:1)
通过float(L[upper])+float(L[lower])