为什么vocabulary[feature]
投掷'int' object is not callable.
请帮忙?
以下是代码:
vocabulary = defaultdict(None)
vocabulary.default_factory = vocabulary.__len__()
j_indices = []
analyzed = ['foo', 'bar', 'baz', 'foo', 'quux']
for feature in analyzed:
j = vocabulary[feature]
print('%s %d' % (feature, j))
j_indices.append(j)
答案 0 :(得分:2)
这是因为您在调用时分配了函数的结果。尝试:
vocabulary.default_factory = vocabulary.__len__() # Returns an int
vocabulary.default_factory = vocabulary.__len__ # The function
答案 1 :(得分:0)
vocabulary = defaultdict(None)
vocabulary.default_factory = vocabulary.__len__()
您在这里将vocabulary
的工厂设置为数字零。因此,当它找不到analyzed
中的第一个元素时,它会给你零,这当然没有索引功能。
答案 2 :(得分:0)
如果defaultdict
的{{1}}设置为int,例如default_factory
(相当于vocabulary.__len__()
),则defaultdict尝试使用给定密钥,这将导致您的错误len(vocabulary)
。
也许您希望将'int' object is not callable
设置为方法default_factory
,而不是结果?