【发布时间】:2015-12-01 09:40:35
【问题描述】:
我正在尝试编写一个中值函数,目前我有一个获取列表并对其进行排序然后给出中值的函数。但我正在尝试重写它,以便如果列表有偶数个元素,它不会打印中位数,而是中位数介于列表中的 2 个数字。这是我的代码
def getMedian(A):
A=sorted(A)
n=len(A)
m=n-1
return (A[int(n/2)]+A[int(m/2)])/2
def main():
myList=[3,5,9,3,11]
print(getMedian(myList))
myList=[3,9,11,5]
print(getMedian(myList))
main()
目前它输出 5 然后 7 但我试图让它输出 5 然后 5,9 有什么建议吗?
【问题讨论】:
-
您告诉它在函数末尾返回两个中间数字的平均值。我建议检查是否 n%2 == 0 或 n%2 ==1,然后有一个 if-then 语句来确定返回什么
-
[5,10,10,15]返回什么?