如何更改解决方案? (codecademy,中位数,python3.4)

How to change solution? (codecademy, median, python3.4)

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

那么,如何更改我的代码以使其被接受?

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

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

这将强制python进行浮点除法而不是整数除法