📜  Python|连续字符频率(1)

📅  最后修改于: 2023-12-03 15:04:28.361000             🧑  作者: Mango

Python | 连续字符频率

在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}
方法二:使用Counter对象

另外一种方法是使用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对象方法适用于处理长字符串,但是需要较多的代码量。在实际应用中,根据需要可以选择不同的方法来实现。