マイラインをオカレンスです:発見数は
line = "aaaaaaaaaaaaaaxxxxxxxxxxxxxxbbbbbbbbbbbbxxxxxxxxxxxxxxxxxxxbbbbbbbbbbb"
どのように私はline
に「XXXXX」のパッチの数を見つけることができますか?例えば上記の答えは2
です。
'x's
の数は異なる場合があります。
マイラインをオカレンスです:発見数は
line = "aaaaaaaaaaaaaaxxxxxxxxxxxxxxbbbbbbbbbbbbxxxxxxxxxxxxxxxxxxxbbbbbbbbbbb"
どのように私はline
に「XXXXX」のパッチの数を見つけることができますか?例えば上記の答えは2
です。
'x's
の数は異なる場合があります。
あなたがグループにそれぞれ「パッチ」をgroupby
を使用して、occurancesの数をカウントすることができます
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))
これは、どんなに長い1以上の「X」のいずれかのグループにマッチしないことによって動作しますが。
あなたは何を試しましたか? – Harsha
私はs.find( 'x')とs.rfind( 'x')を試しましたが、結果が得られません。私の行に – ana
があります。少なくとも3つあります。 – ana