问题: 使用infle和outfile,我试图为infle中的每一行向outfile写入唯一的单词和频率。例如,给定“一条鱼两条鱼”,则输出为one:1 two:1 fish:2 (顺序无关紧要)我能够成功地做到这一点,但使用了一些在我的课上没有教过的东西。这是set函数,它自动获取列表中的唯一单词
我的问题是: 有没有其他方法可以在不使问题过于复杂的情况下实现相同的输出?我想在单子上加上一些词,但我没办法。感谢您的帮助
我的工作代码使用set函数
def wordsByLine(inFile,outFile):
inF=open(inFile,'r')
outF=open(outFile,'w')
for line in inF:
wordlst=line.split()
uniquewordlst=set(wordlst)
for word in uniquewordlst:
outF.write(word+':'+str(line.count(word))+' ')
outF.write('\n')
outF.close()
inF.close()
wordsByLine('fish.txt','fishWords.txt')
填充:
one fish two fish
red fish blue fish
输出文件:
fish:2 one:1 two:1
fish:2 red:1 blue:1
您可以使用如下所示的计数器。我使用列表而不是文件,但它应该适用于文件中的每一行
结果
您可以将此输出写入文件
去查一本单词及其频率的字典
相关问题 更多 >
编程相关推荐