查找重复字符串出现的次数

2024-04-15 14:30:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我的路线是:

line = "aaaaaaaaaaaaaaxxxxxxxxxxxxxxbbbbbbbbbbbbxxxxxxxxxxxxxxxxxxxbbbbbbbbbbb"

如何在line中找到“xxxxx”的补丁数?例如上面的答案是2。你知道吗

请注意,'x's的数量可能会有所不同。你知道吗


Tags: 答案数量line路线xxxxxaaaaaaaaaaaaaaxxxxxxxxxxxxxxbbbbbbbbbbbbxxxxxxxxxxxxxxxxxxxbbbbbbbbbbb
2条回答

这是regex非常有用的一个很好的例子。我在正则表达式方面不是世界上最好的,但这里有一个片段很管用:

import re

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

这是通过匹配1个或多个“x”的任意组来实现的,不管有多长。你知道吗

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

from itertools import groupby

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

相关问题 更多 >