我的路线是:发现出现次数
line = "aaaaaaaaaaaaaaxxxxxxxxxxxxxxbbbbbbbbbbbbxxxxxxxxxxxxxxxxxxxbbbbbbbbbbb"
我怎样才能找到line
“XXXXX”的补丁的数量?例如,上面的答案是2
。
请注意,'x's
的数量可能会有所不同。
我的路线是:发现出现次数
line = "aaaaaaaaaaaaaaxxxxxxxxxxxxxxbbbbbbbbbbbbxxxxxxxxxxxxxxxxxxxbbbbbbbbbbb"
我怎样才能找到line
“XXXXX”的补丁的数量?例如,上面的答案是2
。
请注意,'x's
的数量可能会有所不同。
您可以使用groupby
到组的每个“补丁”再算上出现的次数:
from itertools import groupby
line = 'aaaaaaaaaaaaaaxxxxxxxxxxxxxxbbbbbbbbbbbbxxxxxxxxxxxxxxxxxxxbbbbbbbbbbb'
number_of_x = sum(ch == 'x' for ch, _ in groupby(line))
那真的很漂亮! –
谢谢乔纳斯。它完美的作品。我想知道我什么时候能够编写这样的代码。 – ana
这是哪里的正则表达式是非常有用的一个很好的例子。我不是世界上最好的正则表达式时,但在这里是一个可行的片段:
import re
line = "aaaaaaaaaaaaaaxxxxxxxxxxxxxxbbbbbbbbbbbbxxxxxxxxxxxxxxxxxxxbbbbbbbbbbb"
patches = len(re.findall(r"(x+)", line))
该作品以“X”不管有多长匹配1或以上的团体。
你试过了什么? – Harsha
我试过s.find('x')和s.rfind('x'),但它不会给我想要的结果 – ana
至少有3个x是 – ana