TypeError: объект "list" не может быть вызван при попытке получить доступ к списку
Я пытаюсь запустить этот код, где у меня есть список списков. Мне нужно добавить во внутренние списки, но я получаю сообщение об ошибке
TypeError: 'list' object is not callable.
Может кто-нибудь сказать мне, что я делаю неправильно здесь.
def createlists():
global maxchar
global minchar
global worddict
global wordlists
for i in range(minchar, maxchar + 1):
wordlists.insert(i, list())
#add data to list now
for words in worddict.keys():
print words
print wordlists(len(words)) # <--- Error here.
(wordlists(len(words))).append(words) # <-- Error here too
print "adding word " + words + " at " + str(wordlists(len(words)))
print wordlists(5)
Ответы
Ответ 1
Для доступа к элементам списка вам нужно использовать квадратные скобки ([]
), а не скобки (()
).
Вместо:
print wordlists(len(words))
вам нужно использовать:
print worldlists[len(words)]
И вместо:
(wordlists(len(words))).append(words)
вам нужно использовать:
worldlists[len(words)].append(words)
Ответ 2
wordlists не является функцией, это список. Вам нужен индекс скобок
print wordlists[len(words)]
Ответ 3
Чтобы получить элементы списка, вы должны использовать list[i]
вместо list(i)
.
Ответ 4
Я также получил ошибку, когда я вызвал функцию с тем же именем, что и другая переменная, которая была классифицирована как список.
Как только я разобрался, именование ошибки было разрешено.
Ответ 5
Вы пытаетесь вызвать wordlists
здесь:
print wordlists(len(words)) <--- Error here.
Try:
print wordlists[len(words)]
Ответ 6
Попробуйте wordlists[len(words)]
. ()
- вызов функции. Когда вы выполняете wordlists(..)
, python считает, что вы вызываете функцию с именем wordlists
, которая оказывается list
. Отсюда ошибка.
Ответ 7
Проверьте имя файла, в котором вы сохранили свою программу. Если имя файла wordlists
то вы получите сообщение об ошибке. Ваше имя файла не должно совпадать с любым из методов {функций}, которые вы используете в своей программе.
Ответ 8
Я новичок в этом питоне, и я получил эту ошибку при попытке запустить
find(array, row['number_of_chocolates'])
Я немного погуглил и понял, что есть две ошибки. Если мне нужно передать список в функцию, на нее должны ссылаться:
find(row['number_of_chocolates'], array = [])
Тот факт, что массив находится перед позиционным аргументом, имеет значение.
Ответ 9
Даже я получил ту же ошибку, но я решил ее, я использовал много списков в своей работе, поэтому я просто перезапустил свое ядро (то есть, если вы используете ноутбук, такой как Jupyter или Google Colab, вы можете просто перезапустить и снова запустить все ячейки Таким образом, ваша проблема будет решена и ошибка исчезнет.
Спасибо
Ответ 10
Проверьте, не определили ли вы переменную под названием "список" !!!
Ответ 11
del list
вышеуказанная команда работала на меня