2017-11-25 81 views
0

請讓我知道下面的代碼中的錯誤原因。python:函數返回列表中每個元素的長度給出錯誤

def lenli(ab): 

    results=[] 
    for a in ab: 
     results.append(len(a)) 
    return results 

顯示錯誤


TypeError         Traceback (most recent call last) 
<ipython-input-69-8e23c7ef98a0> in <module>() 
----> 1 lenli[ab] 

TypeError: 'function' object has no attribute '__getitem__' 

感謝 sindia

+0

你的實施是好的。你似乎在調用你的函數'function [ab]',而它應該是'function(ab)'。 – grovina

+0

另請考慮'ab_len = [len(a)for a ab]'。 – grovina

回答

1

要調用的功能失常。方括號[]__getitem__(其中lenli不具備)的簡寫。圓括號()是你想要的__call__的簡寫。

總之:類型lenli(ab)

1

問題不在於您顯示的代碼中,而是在調用它的代碼中。函數被調用括號(),而不是方括號。

相關問題