TypeError:“列表”对象在尝试访问列表时不可调用
Posted
技术标签:
【中文标题】TypeError:“列表”对象在尝试访问列表时不可调用【英文标题】:TypeError: 'list' object is not callable while trying to access a list 【发布时间】:2011-08-09 19:13:17 【问题描述】:我正在尝试在有列表的地方运行此代码。我需要添加到内部列表,但我收到错误
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】:即使我遇到了同样的错误,但我解决了它,我在工作中使用了很多列表,所以我只是重新启动了我的内核(这意味着如果您使用的是 Jupyter 或 Google Colab 等笔记本电脑,您可以重新启动并再次运行所有单元格,通过这样做,您的问题将得到解决,错误消失。
谢谢。
【讨论】:
【参考方案2】:del list
上面的命令对我有用
【讨论】:
如果您分配了一个变量列表,这可能会发生。不是在这个问题的背景下,但是对我有帮助。谢谢。【参考方案3】:要访问列表的元素,您需要使用方括号 ([]
) 而不是括号 (()
)。
代替:
print wordlists(len(words))
你需要使用:
print worldlists[len(words)]
而不是:
(wordlists(len(words))).append(words)
你需要使用:
worldlists[len(words)].append(words)
【讨论】:
规范化答案,因此我做了一个小的编辑。如果您愿意,请回滚。谢谢。【参考方案4】:要获取列表的元素,您必须使用list[i]
而不是list(i)
。
【讨论】:
【参考方案5】:检查保存程序的文件名。如果文件名为wordlists
那么你会得到一个错误。您的文件名不应与您在程序中使用的任何方法函数相同。
【讨论】:
【参考方案6】:当我调用与另一个分类为列表的变量同名的函数时,我也遇到了错误。
我整理好命名后,错误就解决了。
【讨论】:
【参考方案7】:wordlists 不是一个函数,它是一个列表。你需要括号下标
print wordlists[len(words)]
【讨论】:
+1 用于识别单词列表不是函数(或某些可调用对象),因此不能使用参数调用,从而导致给定错误。有关使 Python 对象可调用的技术解释,请参阅***.com/questions/111234/what-is-a-callable-in-python。如果我们想获得真正的技术性,我们使用方括号,因为它是一个列表数据结构docs.python.org/tutorial/datastructures.html#more-on-lists【参考方案8】:试试wordlists[len(words)]
。 ()
是一个函数调用。当您执行wordlists(..)
时,python 认为您正在调用一个名为wordlists
的函数,结果是list
。因此出现错误。
【讨论】:
【参考方案9】:您正尝试在此处致电wordlists
:
print wordlists(len(words)) <--- Error here.
试试:
print wordlists[len(words)]
【讨论】:
以上是关于TypeError:“列表”对象在尝试访问列表时不可调用的主要内容,如果未能解决你的问题,请参考以下文章
TypeError:“ float”对象在尝试从浮动列表中选择特定对象时不可迭代
TypeError:'float' 对象在内置 max 函数的列表中不可迭代
渲染时捕获 TypeError:“BoundField”对象不可迭代