在我的代码中,我导入3个不同的名称和数字列表,我想获得最不常出现的名称。现在我得到了所有名字的列表以及它们出现的次数。但是代码还会计算我不需要的所有其他列。
2.只能出现一次,而不是多次出现的单词?
import re
filelist = ['D.txt','A.txt','S.txt']
wordbank = {}
for file in filelist:
article_one = re.findall('\w+', open(file,).read().lower())
for word in article_one:
word = word.lower().strip(string.punctuation)
if word not in wordbank:
wordbank[word] = 1
else:
wordbank[word] += 1
sortedwords = sorted(wordbank.items(), key=operator.itemgetter(1))
for word in sortedwords:
print (word[1], word[0])
答案 0 :(得分:1)
文本文件中列的分隔是什么?为了举例,我们可以说它们是制表符分隔的列。您不必使用正则表达式,而是在文本文件的每一行中读取所有内容,然后将行分为'\t'
。然后,要仅使用第一列,请将包含拆分行的列表的索引号为零。
你正在用wordbank做什么应该足以找到只发生一次的单词。您所要做的就是检查每个单词的计数,以确保它不大于1.例如:
filelist = ['D.txt','A.txt','S.txt']
wordbank = {}
for file in filelist:
f = open(file, 'r')
lines = f.readlines()
for l in lines:
line = l.split('\t')
word = line[0]
if word not in wordbank:
wordbank[word] = 1
else:
wordbank[word] += 1
f.close()
# Gather unique words
unique_words = []
for word in wordbank.keys():
if wordbank[word] == 1:
unique_words.append(word)