关于python:查找重复字符串出现次数

finding number of repetitive string occurrences

是:我的线

1
line ="aaaaaaaaaaaaaaxxxxxxxxxxxxxxbbbbbbbbbbbbxxxxxxxxxxxxxxxxxxxbbbbbbbbbbb"

Mi-24是数学院"XXXXX"line补丁?例如,上面的回答将是2

注意'x's数可能有所不同。


这是一个很好的例子,说明regex可以非常有用。我在regex不是世界上最好的,但这里有一个有用的片段:

1
2
3
4
import re

line ="aaaaaaaaaaaaaaxxxxxxxxxxxxxxbbbbbbbbbbbbxxxxxxxxxxxxxxxxxxxbbbbbbbbbbb"
patches = len(re.findall(r"(x+)", line))

这是通过匹配1个或多个"x"的任何组来实现的,无论时间长短。


您可以使用groupby对每个"补丁"进行分组,然后计算发生的次数:

1
2
3
4
from itertools import groupby

line = 'aaaaaaaaaaaaaaxxxxxxxxxxxxxxbbbbbbbbbbbbxxxxxxxxxxxxxxxxxxxbbbbbbbbbbb'
number_of_x = sum(ch == 'x' for ch, _ in groupby(line))