如何改变解决方案? (codecademy,median,python3.4)

时间:2015-05-18 05:18:48

标签: python median

我使用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

那么,如何更改我的代码以便接受它?

1 个答案:

答案 0 :(得分:1)

根据您目前提供的信息,我认为这可能是整数除法的问题。如果列表中有偶数个元素,则必须取平均值。在python3.4中,/确实浮点除法,但在python2中,它进行整数除法。因此,您应该将行修改为以下内容(2.0而不是2):

return (a[int((len(a))/2)] + a[int(((len(a))/2) - 1)]) / 2.0

这将强制python执行浮动除法而不是整数除法