繁体   English   中英

Python-在文本文件中查找字符串列表的字符串频率

[英]Python - Finding string frequencies of list of strings in text file

我正在尝试在文本文件中查找所有出现的字符串,其中每个字符串都位于文件的新行中。

例如,示例文件可能如下所示:

jump start
jump go
feet start
jump go

除“ jump go”外,所有字符串的目标总计为1

到目前为止,我已经成功使用以下代码找到了单个单词数:

import re
import collections
with open('file.txt') as f:
    text = f.read()
words = re.findall(r'\w+',text)
counts = collections.Counter(words)
print(counts)

但是,这仅给出如下输出:jump = 3,start = 2,go = 2,foot = 1

不确定这是否重要,但是文件中的行数将约为500万,其中包含约12,000个独立字符串。

感谢您的任何帮助!

我得到这个工作:

import collections

lines = [line.strip() for line in open('results.txt')]
counts = collections.Counter(lines)
print counts

输出:

['Sam', 'sam', 'johm go', 'johm go', 'johm for']
Counter({'johm go': 2, 'sam': 1, 'Sam': 1, 'johm for': 1})

代替使用正则表达式,将文件读取为words=f.readlines() 您将得到与每一行相对应的字符串列表。 然后,从该列表构建计数器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM