🐍 Python
str.count(sub, start=0, end=len(str))
文字列中に部分文字列subが何回出現するかを数えるメソッドです。ログの行数を数えたり、特定の文字がいくつ含まれるかを調べたりするときに使います。
構文: str.count(sub, start=0, end=len(str))
戻り値: 出現回数(int)
基本の使い方
s = "banana"
print(s.count("a")) # 3
print(s.count("an")) # 2
重複するパターンは数え直さない(重ならない一致のみ)
count()は一致した箇所を消費しながら次を探すため、パターンが重なって出現しても重複しては数えません。たとえば"aaaa".count("aa")は4ではなく2になります(最初の2文字で1回、次の2文字で1回)。
start・endで検索範囲を絞る
スライスと同じ考え方で、検索対象の範囲を指定できます。
s = "aaaaaa"
print(s.count("aa", 2, 6)) # 2
実用例:テキストの行数を数える
改行文字\nの出現回数を数えれば、簡易的な行数カウントができます。
text = "line1\nline2\nline3\n"
print(text.count("\n")) # 3
パラメータ
- sub
- 数えたい部分文字列
- start・end(省略可)
- 検索対象とする範囲。省略時は文字列全体
💡 1文字だけを数えたいならlistのcountとの混同に注意
Pythonのlistにも同名のcount()メソッドがあり、こちらは「要素そのものが一致する回数」を数えます。文字列のcount()は部分文字列としての出現回数を数える点が違います。AIが生成したコードで文字列を1文字ずつlist()に変換してからcountしている場合、単にtext.count("a")と書けば済むことが多く、遠回りな実装になっていないか確認する価値があります。