一直卡在这最后一刻,对于我的生活无法找到问题所在。所以有问题的练习是:以列表作为输入并返回中间值
编写一个名为median的函数,它将一个列表作为输入并返回列表的中值。例如:
median([1,1,2])
应该返回1.
我在codeacadamy这样做的,它不断告诉我它得到的答复是4(应为4.5作为测试列表有使用来检查我的代码为[4, 5,5,4])。为了让事情变得更加奇怪,我在cscircles网站上的控制台IDE上尝试了代码(就像它的感觉),并说它很好。
def median(y):
x = sorted(y)
x_len = len(x)
if x_len % 2 == 0:
start = x_len // 2
median = (x[start-1] + x[start])/2
return median
else:
start = x_len // 2
median = x[start]
return median
如果你的输出不能保证是单调的,要找到中位数,你需要事先排序列表。另外,Python 2中的整数除法(正如其他人所提到的)。 –
可能的整数除法。尝试从文件顶部的__future__导入部分添加 – wrdeman
顺便说一下[查找列表的中位数](https://stackoverflow.com/questions/24101524/finding-median-of-list-in-python?rq = 1)已经被问到 –