簡體   English   中英

類型NoneType的對象沒有len

[英]object of type NoneType has no len

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() median medianevenmedian medianodd起作用,但是median本身不起作用。

.sort()就位並返回None

更改此行:

new = L.sort()

為此:

L.sort()

並僅用L替換所有new實例。 您還需要return這些函數調用的結果:

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

另外,Python的切片支持負索引,因此此代碼:

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

可以簡化為

L[1:-1]

您在該行中進行的sort()方法調用:

new = L.sort();

不返回任何東西。 因此,“新”持有“無”,沒有長度。 我相信這樣做L.sort()可以對列表進行排序。 不需要將其存儲在“ new”中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM