以下是 Python 編寫一個(gè)函數(shù)求中位數(shù)的代碼:
def find_median(arr):
arr.sort() # 將列表升序排序
n = len(arr)
if n % 2 != 0: # 判斷列表長(zhǎng)度為奇數(shù)還是偶數(shù)
return arr[n//2] # 如果是奇數(shù),返回中間元素
else:
return (arr[n//2-1] + arr[n//2])/2 # 如果是偶數(shù),返回中間兩個(gè)元素的平均值
函數(shù)參數(shù) arr 是一個(gè)列表,函數(shù)首先使用 sort() 方法將列表升序排序。然后判斷列表長(zhǎng)度是奇數(shù)還是偶數(shù),如果是奇數(shù),返回列表中間的元素;如果是偶數(shù),則返回中間兩個(gè)元素的平均值。
例如,對(duì)于以下列表 [1, 2, 3, 4, 5],調(diào)用函數(shù) find_median() 將返回 3,因?yàn)橹形粩?shù)是 3。
print(find_median([1, 2, 3, 4, 5])) # 輸出 3
對(duì)于另一個(gè)列表 [1, 2, 3, 4],調(diào)用函數(shù) find_median() 將返回 2.5,因?yàn)橹形粩?shù)是 (2 + 3) / 2。
print(find_median([1, 2, 3, 4])) # 輸出 2.5