1 回答
TA贡献1865条经验 获得超7个赞
将单词从数据库保存到第一个单词,set然后对其应用str.strip和应用str.lower。str.strip将删除开头和结尾的空白字符,例如'\n'.etc。
集合提供O(1)查找,并且集合相交将比您当前的O(n^2)方法效率更高。
然后遍历word文件中的每一行并应用str.strip,str.lower首先在集合中搜索它。
with open(r"words.txt") as f1, open(r"text.txt", "r") as f2:
dlist = set(line.strip().lower() for line in f2) #set of words from database
for line in f1:
line = line.strip().lower() #use strip to remove '\n'
words = set(line.split()) #use split to get the words from the line
#and convert it into a set
common_words = words & dlist #use set intersection to find common words
for word in common_words:
*trick*
请替换f1并f2适当地替换,因为我很困惑哪个是数据库,哪个是文本数据集。
添加回答
举报