2016-10-11 3 views
0

Ich bekomme diesen Fehler mit diesem kleinen Code-Inhalt von Python27. Kann mir jemand dabei helfen? Danke im Voraus.Python Typ Fehler: 'List' -Objekt ist nicht aufrufbar

Run Time Error Traceback (most recent call last): File "5eb4481881d51d6ece1c375c80f5e509.py", line 57, in print len(arr) TypeError: 'list' object is not callable

global maximum 

def _lis(arr , n): 

    # to allow the access of global variable 
    global maximum 

    # Base Case 
    if n == 1 : 
     return 1 

    # maxEndingHere is the length of LIS ending with arr[n-1] 
    maxEndingHere = 1 

    """Recursively get all LIS ending with arr[0], arr[1]..arr[n-2] 
     IF arr[n-1] is maller than arr[n-1], and max ending with 
     arr[n-1] needs to be updated, then update it""" 
    for i in xrange(1, n): 
     res = _lis(arr , i) 
     if arr[i-1] < arr[n-1] and res+1 > maxEndingHere: 
      maxEndingHere = res +1 

    # Compare maxEndingHere with overall maximum. And 
    # update the overall maximum if needed 
    maximum = max(maximum , maxEndingHere) 

    return maxEndingHere 

def lis(arr): 

    # to allow the access of global variable 
    global maximum 

    # lenght of arr 
    n = len(arr) 

    # maximum variable holds the result 
    maximum = 1 

    # The function _lis() stores its result in maximum 
    _lis(arr , n) 

    return maximum 

num_t = input() 

len = [None]*num_t 

arr = [] 

for i in range(0,num_t): 

    len[i] = input() 

    arr.append(map(int, raw_input().split())) 

    print len(arr) 
    break  
+0

Benennen Sie die Namen der eingebauten Funktionen nicht anderweitig. – Li357

+3

Sie überschreiben die 'len' Funktion durch Ihre Variable' len'. Versuchen Sie es mit einem anderen Variablennamen. – acw1668

+0

@AndrewL. Vielen Dank! Habe es herausgefunden –

Antwort

1

Das ist, was passiert, wenn Sie eine Variable definieren, die auch eine eingebaute Funktion Name ist.
Ändern Sie die Variable len in etwas anderes.

5

Sie eine Liste len Namen erstellt haben, wie Sie hier aus der Tatsache sehen, dass Sie indizieren der Lage sind, es:

len[i] = input() 

So natürlich, len ist nicht mehr eine Funktion, die die Länge eines bekommt Liste, die zu dem Fehler führt, den Sie erhalten.

Lösung: benennen Sie Ihre len Liste etwas anderes.

Verwandte Themen