8、中位數

 

對數字進行升序排列

如果數字列表長度是奇數,則列表中間的數字是中位數;

如果數字列表長度是偶數,則取兩個中間數的均值作爲中位數。

def calculate_median(numbers):
    n = len(numbers)
    numbers.sort()

    if n % 2 == 0:
        m1 = n / 2
        m2 = n / 2 + 1
        m1 = int(m1) - 1
        m2 = int(m2) - 1
        median = (numbers[m1] + numbers[m2]) / 2
    else:
        m = (n + 1) / 2
        m = int(m) - 1
        median = numbers[m]

    return median


if __name__ == '__main__':
    donations = [100, 60, 70, 900, 100, 200, 500, 500, 503, 600, 1000, 1200]
    median = calculate_median(donations)
    n = len(donations)
    print('Median donation over the last {0} days is {1}'.format(n, median))

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章