2

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

  • 定义一组字符串,其中每个字符串看起来像“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 风格的方法。

谢谢!

4

1 回答 1

3

类似(未经测试):

from collections import Counter

pairs = Counter()

with open(...) as fp:
   for line in fp:
      pairs.update(re.findall(r'\d+\s+\d+', line))
于 2013-10-10T13:07:33.180 回答