2016-04-11 11 views
0

Bu sorunu nasıl çözebilirim? Bunu çalıştırdığınızdapython3 'Nontype object' aboneye özel değil

def median(lst): 
    lst_s=lst.sort() 
    k=len(lst) 

    if k%2==0: 
     return ((lst_s[k/2]+lst_s[k/2-1])/2) 
    elif k%2==1: 
     return (lst_s[k/2-1/2]) 

res = median([1,2,3,7,6,5]) 
print('median:',res) 

, bu

Traceback (most recent call last): 
    File "E:\lab5_p4_2015123176.py", line 13, in <module> 
    res = median([1,2,3,7,6,5]) 
    File "E:\lab5_p4_2015123176.py", line 7, in median 
    return ((lst_s[k/2]+lst_s[k/2-1])/2) 
TypeError: 'NoneType' object is not subscriptable 
+2

Olası yinelenen [Neden var? ”Return list.sort()" return None, listeyi değil? "(Http://stackoverflow.com/questions/7301110/why-does-return-list-sort-return- hiçbiri-olmayan-listesi) –

cevap

0

sorun yerinde listenin list.sort() türlü ürün böylece None döndürdüğünü söylüyor. median işlevinizde, orijinal listedeki öğe sırasını değiştirmek istemiyorsanız, lst_s = lst.sort() kodunu lst_s = sorted(lst) ile değiştirmeniz gerekir.

İlgili konular