📅  最后修改于: 2023-12-03 15:04:28.361000             🧑  作者: Mango
在Python中,经常需要统计字符的出现频率,尤其是统计连续字符的出现频率。本文将介绍如何使用Python实现连续字符频率的统计。
可以使用re模块中的正则表达式来统计连续字符的出现频率。具体实现参考下面代码:
import re
s = 'aaaabbbccccccddddeee'
result = {}
for m in re.finditer(r'(\w)\1*', s):
result[m.group()] = len(m.group())
print(result)
输出结果为:
{'a': 4, 'b': 3, 'c': 6, 'd': 4, 'e': 3}
另外一种方法是使用Python标准库中的collections模块中的Counter对象来实现。具体实现如下:
from collections import Counter
s = 'aaaabbbccccccddddeee'
result = Counter()
for i in range(len(s)):
j = i + 1
while j < len(s) and s[j] == s[i]:
j += 1
result[s[i:j]] += 1
i = j - 1
print(result)
输出结果为:
Counter({'c': 6, 'a': 4, 'd': 4, 'b': 3, 'e': 3})
本文介绍了两种方法来统计连续字符的出现频率,一种是使用正则表达式,另外一种是使用Counter对象。正则表达式方法简洁明了,但是在长字符串的情况下可能会有性能问题。Counter对象方法适用于处理长字符串,但是需要较多的代码量。在实际应用中,根据需要可以选择不同的方法来实现。