我使用python 3.4进行编码。 Codecademy编辑器不接受我的解决方案。任务是编写一个函数来查找列表的中位数。
我的代码:
def median(nums):
a = sorted(nums)
if len(a)==1:
return a[0]
elif len(a) % 2 != 0:
return a[int((len(a) - 1)/2)]
else:
return (a[int((len(a))/2)] + a[int(((len(a))/2) - 1)])/2
那么,如何更改我的代码以便接受它?
答案 0 :(得分:1)
根据您目前提供的信息,我认为这可能是整数除法的问题。如果列表中有偶数个元素,则必须取平均值。在python3.4中,/
确实浮点除法,但在python2中,它进行整数除法。因此,您应该将行修改为以下内容(2.0
而不是2
):
return (a[int((len(a))/2)] + a[int(((len(a))/2) - 1)]) / 2.0
这将强制python执行浮动除法而不是整数除法