Python:计算文件中一组字符串的出现次数

时间:2013-10-10 12:57:09

标签: python string count

我有一个大文本文件,我正在寻找实现以下内容的最佳方法:

  • 定义一组字符串,其中每个字符串看起来像“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式的方法来完成这项工作。

谢谢!

1 个答案:

答案 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))