Skip to main content
 首页 » 编程设计

python之NoneType 类型的对象没有 len

2025年05月04日15lidabo

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]