Python 如何改变解决方案?(编解码器,中位数,蟒蛇3.4)
我使用Python3.4进行编码。Codecademy编辑器不接受我的解决方案。任务是编写一个函数来查找列表的中间值 我的代码:Python 如何改变解决方案?(编解码器,中位数,蟒蛇3.4),python,median,Python,Median,我使用Python3.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)
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
):
这将迫使python进行浮点除法而不是整数除法
return (a[int((len(a))/2)] + a[int(((len(a))/2) - 1)]) / 2.0