#python #list
#python #Список
Вопрос:
Я получаю эту ошибку из-за небольшого содержимого кода 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
Ответ №1:
Вы создали список с именем len
, как вы можете видеть здесь, исходя из того факта, что вы можете его индексировать:
len[i] = input()
Поэтому, естественно, len
это больше не функция, которая получает длину списка, что приводит к получаемой ошибке.
Решение: назовите свой len
список как-нибудь иначе.
Ответ №2:
Это то, что происходит, когда вы определяете переменную, которая также является именем встроенной функции.
Измените переменную len
на что-то другое.