我正在尝试从两个输入文件中找到所有匹配的单词,但我不断收到“TypeError:unhashable type:'list'”。我不知道为什么。有人可以让我知道我做错了什么以及如何解决它
#!/usr/bin/python3
#First file
file = raw_input("Please enter the name of the first file: ")
store = open(file)
new = store.read()
#Second file
file2 = raw_input("Please enter the name of the second file: ")
store2 = open(file2)
new = store2.read()
words = set(line.strip() for line in new)
for line in new:
word2 = line.split()
if word2 in words:
print words
答案 0 :(得分:2)
您收到TypeError: unhashable type: 'list'
异常,因为word2 = line.split()
正在返回列表对象。
而您正在尝试在words
设置对象中搜索列表(不可用对象)。
例如:
>>> word2 = 'abc'
>>>
>>> word2.split() in set(['abc', 'def'])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'
split
不是正确的功能。您应该使用strip
功能删除whitespaces
。
>>> word2.strip() in set(['abc', 'def'])
True