我想做以下工作:
因此,我有以下几点:
tagList = {"later", "test"}
aList = [];
tagCount = {}
from collections import Counter
#Sample
f = ["This is a test", "Call me later"]
for line in f:
fields = line.split(' ')
for word in fields:
if word in tagList:
list = aList.append([word])
counts = Counter(aList)
一切正常,直到最后一部分。当我这样做时,我抛出以下错误。你觉得这里出了什么问题吗?你知道吗
Traceback (most recent call last):
File "C:/Users/Marc/PycharmProjects/clustering/load.py", line 51, in <module>
counts = Counter(aList)
File "C:\Users\Marc\Anaconda3\lib\collections\__init__.py", line 530, in __init__
self.update(*args, **kwds)
File "C:\Users\Marc\Anaconda3\lib\collections\__init__.py", line 617, in update
_count_elements(self, iterable)
TypeError: unhashable type: 'list'
你在数一个列表。
aList
中的每个元素本身就是一个列表,其中包含一个单词:您将
[word]
附加到那里的列表中,因此列表只有一个元素。你知道吗Counter
尝试将每个列表用作键,这是不可能的,因为列表对象是可变的,因此不可散列。你知道吗您不想计算列表,而是要计算单词,因此只附加单词而不包含周围的列表:
注意
list =
部分可以也应该删除。.append()
总是返回None
,因为列表被适当地更改了,并且您永远不会在代码中的任何其他地方使用list
。你知道吗相关问题 更多 >
编程相关推荐