用于计算输出中列出的最常见字符串的Python计数器

时间:2014-06-04 14:28:42

标签: python regex python-2.7 counter

嘿伙计们我一直在研究这段代码来计算文本文档中出现的字符串数量,这是我之前提出的问题,代码如下所示:

from collections import Counter
with open("C:\\Documents and Settings\\Zha\\Desktop\\stringResult\\sguresult_lenght10.txt") as f:
    content = f.read()
a = Counter(content.split()).most_common()    
for line in a:
        print line

打印行的结果示例将是这样的

('KERNEL32.dll', 58)
('not', 49)
('.data', 49)
("nRX|'", 20)
('xZGVr', 20)
('TyN*u', 20)
('[Wu^D', 20)

逗号之前的部分是字符串,下一个是出现次数 现在问题是我需要删除所有括号外的' '单引号之间只留下字符串和数字,即

KERNEL32.dll, 58
not, 49
.data, 49
etc

我一直在尝试使用正则表达式,但似乎我可能得到错误的模式,因为单引号有时是字符串本身的第一部分。有没有简单的方法来解决这个问题?感谢

3 个答案:

答案 0 :(得分:1)

您可以使用:

for line in a:
    print '%s, %s' % (line[0], line[1])

答案 1 :(得分:0)

使用*语法:

for line in a:
    print *line

*语法告诉函数将集合中的元素视为单独的参数。

示例:

>>>foo = ('Hello', 'World', 1, 2, 3,)
>>>print foo
('Hello', 'World', 1, 2, 3)
>>>print *foo
'Hello' 'World' 1 2 3

答案 2 :(得分:0)

a= dict(Counter(content.split()).most_common())

for i,j in a.items():
    print i,j

我的回答删除了报价,无需添加新条件