TypeError:尝试访问列表时,'list'对象不可调用

问题描述 投票:49回答:8

我正在尝试运行此代码,我有一个列表列表。我需要添加到内部列表,但我得到错误

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)
python callable
8个回答
63
投票

要访问列表的元素,您需要使用方括号([])而不是括号(())。

代替:

print  wordlists(len(words))

你需要使用:

print worldlists[len(words)]

而不是:

(wordlists(len(words))).append(words)

你需要使用:

worldlists[len(words)].append(words)

7
投票

wordlists不是一个函数,它是一个列表。你需要括号下标

print  wordlists[len(words)]

7
投票

要获取列表的元素,您必须使用list[i]而不是list(i)


5
投票

当我调用一个与另一个被归类为列表的变量同名的函数时,我也收到了错误。

一旦我整理了命名,错误就解决了。


3
投票

你试图在这里打电话给wordlists

print  wordlists(len(words)) <--- Error here.

尝试:

print wordlists[len(words)]

3
投票

试试wordlists[len(words)]()是一个函数调用。当你做wordlists(..)时,python认为你正在调用一个名为wordlists的函数,结果证明它是一个list。因此错误。


0
投票

检查保存程序的文件名。如果文件名是wordlists,那么您将收到错误。您的文件名不应与您在程序中使用的任何方法{functions}相同。


0
投票

即使我得到了相同的错误,但我解决了它,我在工作中使用了很多列表,所以我只是重新启动了我的内核(这意味着如果你使用的是像Jupyter或Google Colab这样的笔记本,你可以重新启动并再次运行所有单元格通过这样做,你的问题将得到解决,错误消失。

谢谢。


-2
投票
del list

以上命令对我有用

© www.soinside.com 2019 - 2024. All rights reserved.