我不确定我的错误在哪里,但这是我从index = plottest(doc)
得到错误的代码:
for doc in plottest:
for word in wordsunique:
if word in doc:
word = str(word)
index = plottest(doc)
positions = list(np.where(np.array(index) == word)[0])
idfs = tfidf(word,doc,plottest)
try:
worddic[word].append([index, positions, idfs])
except:
worddic[word] = []
worddic[word].append([index, positions, idfs])
答案 0 :(得分:0)
正如@Robin Zigmond在评论中所说,您正试图使用(...)
语法调用列表,就像调用函数一样。以下:
>>> def f(x): return 2*x
...
>>> f(2)
4
不同于:
>>> L=[1,2,3]
>>> L(2)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'list' object is not callable
后者不能工作,因为[1,2,3]
是不可调用的。 The Python documentation列举可调用类型:
__call__()
方法来使任意类的实例可调用。 列表(例如list
实例)都不是列表,因为list
类没有__call__() method
:
>>> dir(list)
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
在您的示例中,第一行指出plottest
是可迭代的。错误显示它是一个列表。然后,您尝试使用index = plottest(doc)
进行调用。我的猜测是您想获取doc
中plottest
的索引。要在Python中实现此目标,您可以编写:
for index, doc in enumerate(plottest):
...
希望有帮助!