def medianeven (L):
while len(L) > 2:
L = L[1:(len(L)-1)]
return average (L)
def medianodd (L):
while len(L) > 1:
L = L[1:(len(L)-1)]
return L[0]
def median (L):
new = L.sort()
a = len(new)
if a % 2 == 0:
medianeven(new)
else:
medianodd(new)
它说 TypeError: object of type 'NoneType' has no len()。 medianeven 和 medianodd 都可以工作,但是 median 本身没有工作。
请您参考如下方法:
.sort() 就地返回 None。
改变这一行:
new = L.sort()
仅此而已:
L.sort()
并将所有 new 实例替换为 L。您还需要返回这些函数调用的结果:
if a % 2 == 0:
return medianeven(new)
else:
return medianodd(new)
另外,Python的切片支持负索引,所以这段代码:
L[1:(len(L)-1)]
可以简化为just
L[1:-1]
