2016-05-08 45 views
-2

使用正则表达式,我想要计算具体的字母。我制作了一个如下所示的匹配对象。但不知道如何计算其频率。大多数计数的例子都是用于单词,所以我找不到它的好参考。如何匹配特定字母并计算其频率?

f = open("C:\Python27\test.txt") 
raw_sentence = f.read 
upper_sentence = raw_sentence.upper() 
match = re.findall(r"A", upper_sentence) 

我应该像其他字数统计代码一样做一些列表数据吗?

+0

标题是关于文字和描述是关于字,其中之一是它?有示例输入和预期输出也会有帮助。 – niemmi

+0

对不起,这是信。和我想要的结果是像这样的“A:3”,“B:6”这样的 –

+0

可能从昨天复制:[如何可以通过使用python代码获得直方图数对?](http://stackoverflow.com /问题/ 37084670 /何灿I-得到直方图数与 - 对按使用的Python代码/) – John1024

回答

1

只需使用str.count

raw_sentence.upper().count('A') 

如果你想多个元素的计数,它能够更好地使用collections.Counter

>>> s = 'abcabcsdab' 
>>> import collections 
>>> collections.Counter(s) 
Counter({'a': 3, 'b': 3, 'c': 2, 'd': 1, 's': 1})