我有一个大文本文件,我正在寻找实现以下内容的最佳方法:
定义一组字符串,其中每个字符串看起来像“x y”,x,y中的每一个都是一个可以取多个值的整数。
查看文件,找到并计算“x y”的每个实例。将结果返回为大致类似的列表(“x y”:count)。
我是编程和Python的初学者,我唯一能想到的就是
f = open('file', 'r')
for x in xrange:
for y in yrange:
xystring = str("%i %i") %(x,y)
count = 0
for line in f:
count += line.count(xystring)
print xystring, count
现在我明显的问题是,即使对我来说这看起来也不优雅,并且它会严重缩放 - 我最终需要这种方法来计算所有实例,例如7 ^ 7个不同的字符串。我还需要扫描多个文件,同时跟踪每个字符串的计数。我正在寻找最有效和Python式的方法来完成这项工作。
谢谢!
答案 0 :(得分:3)
像(未经测试)的东西:
from collections import Counter
pairs = Counter()
with open(...) as fp:
for line in fp:
pairs.update(re.findall(r'\d+\s+\d+', line))