Python类型错误:'List'对象不可调用

时间:2016-10-11 05:33:50

标签: python list

我使用Python27的这个小代码内容得到了这个错误。谁能帮我这个?提前谢谢。

  

运行时错误回溯(最近一次调用最后一次):文件   “5eb4481881d51d6ece1c375c80f5e509.py”,第57行,       print len(arr)TypeError:'list'对象不可调用

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    

2 个答案:

答案 0 :(得分:5)

您已经创建了一个名为len的列表,您可以在此处看到,因为您可以将其编入索引:

len[i] = input()

很自然地,len不再是获取列表长度的函数,导致您收到错误。

解决方案:将您的len列表命名为其他内容。

答案 1 :(得分:1)

当你定义一个也是内置函数名的变量时会发生这种情况 将变量len更改为其他内容。