🐍 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")と書けば済むことが多く、遠回りな実装になっていないか確認する価値があります。

← Python str クイックリファレンス一覧へ戻る