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()medianevenmedianodd都可以,但是median本身不起作用。

最佳答案

.sort()就位并返回None

更改此行:

new = L.sort()


为此:

L.sort()


并将所有new实例替换为L。您还需要return这些函数调用的结果:

if a % 2 == 0:
    return medianeven(new)
else:
    return medianodd(new)


另外,Python的切片支持负索引,因此此代码:

L[1:(len(L)-1)]


可以简化为

L[1:-1]

关于python - 类型NoneType的对象没有len,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15607361/

10-14 18:18