查找重复字符串出现次数

时间:2017-08-22 12:38:43

标签: python substring

我的意思是:

line = "aaaaaaaaaaaaaaxxxxxxxxxxxxxxbbbbbbbbbbbbxxxxxxxxxxxxxxxxxxxbbbbbbbbbbb"

如何找到" xxxxx"的补丁数量?在line?例如,上面的答案是2

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

2 个答案:

答案 0 :(得分:3)

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

import re

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

无论多长时间匹配任何一个或多个'x'的组,这都可以。

答案 1 :(得分:1)

您可以使用groupby对每个"补丁"进行分组然后计算出现次数:

from itertools import groupby

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