2015-07-12 46 views
-3
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,查找列表中位數

的Python 3.4

想我用這個列表 L = [98,75,92,87,89,90, 92,87]

當我對列表進行排序,找到中間的兩個數字,我得到89和90 ... ...但是,我嘗試採取這兩個數字

中位數=((L [平均上] + L [下])/ 2)

它返回數字89.00而不是89.50

任何想法如何解決這個問題? 由於

回答

1

鑄兩個數,L [上]和L [下]通過執行float(L[upper])+float(L[lower])

+0

完美浮起,由於 – ARW