【发布时间】:2018-04-11 01:48:18
【问题描述】:
我只想将两个文本中的单词放在一个集合中,以获取所有唯一的单词。当我运行此代码时,我得到一个 Type Error: unhashable type: 'list'
我可以做些什么不同的事情?
infile1 = open("random.txt", 'r')
infile2 = open("random_encr.txt", 'r')
data1 = infile1.read()
data2 = infile2.read()
#close files
infile1.close()
infile2.close()
# replace all dots with empty string
data1 = data1.replace('.', '')
data2 = data2.replace('.', '')
# split words in data (splitted by whitespace) and save in words
words1 = data1.split()
words2 = data2.split()
set1 = set([words1])
set2 = set([words2])
set1.update(set2)
print(set1)
【问题讨论】:
-
您在哪一行出现此错误?
-
啊,您似乎正在使用列表列表初始化集合。 words1 是一个列表,[words1] 类似于 [['word1', 'word2', ...]]。你可以试试
set1 = set(words1)吗? -
是的,你可能是对的。错误在第 19 行,我在这里创建集合
-
您可以做的不同的事情是创建一个函数,该函数返回给定文件名的单词集。你的代码几乎有一半是重复的。
-
如果您正在处理繁重的文本工作,我建议您使用 NLTK。是一个用于文本处理的 python 包,具有“标记化”文本等功能。
标签: python