指定した文字列が対象の文字列に何個含まれるのかを取得する(count)

広告
eyecatch

文字列で用意されているメソッドの中で、文字列の中に指定した文字列が重複せずに何個含まれるのかを取得するのに使用できるメソッドの使い方について解説します。

指定した文字列が何回含まれるのかを取得する(countメソッド)

count メソッドは文字列の中で指定した文字列が重複せずに何回現れるのかを取得します。使い方は次の通りです。

str.count(sub[, start[, end]])

引数に指定した文字列( sub )が文字列 str の中で重複せずに現れる回数を返します。範囲を指定する start と end は省略可能です。こちらは後で試します。

簡単なサンプルで試してみます。

>>> "dictionary".count("io")
1
>>> "Good School".count("oo")
2
>>> "Goooood".count("oo")
2
>>> "Orange".count("aa")
0
>>>

最初の例では "dictionary" の中で "io" という文字列が現れる回数は 1 回のために count メソッドは 0 を返します。

2番目の例では "Good School" の中で "oo" という文字列が現れる回数は 2 回のために count メソッドは 2 を返します。

3番目の例では "Goooood" の中で "oo" という文字列は 4 回現れますが、重複せずに現れる回数は 2 回のため count メソッドは 2 を返します。

G o o o o o d
  --- ---
   1   2

4 番目の例のように指定した文字列が見つからなかった場合には 0 が返されます。

-- --

count メソッドでは 2 番目と 3 番目の引数を指定することで、指定した文字列を探す範囲を指定することができます。

str.count(sub[, start[, end]])

対象の文字列( str )のインデックスが start から end の範囲内で引数に指定した文字列( sub )が重複せずに現れる回数を返します。

簡単なサンプルで試してみます。

>>> "Good School".count("oo")
2
>>> "Good School".count("oo", 3, 10)
1
>>> "Good School".count("oo", 3)
1
>>>

2番目の例では "Good School" の中でインデックス 3 から 10 の間の範囲で "oo" という文字列が重複せずに現れる回数は 1 のために count メソッドは 1 を返します。

d   S c h o o l
3 4 5 6 7 8 9 10

なお 3 番目の例のように end を省略した場合は文字列の最後までが指定されたものとして扱われます。

-- --

文字列で用意されているメソッドの中で、文字列の中に指定した文字列が重複せずに何個含まれるのかを取得するのに使用できるメソッドの使い方について解説しました。

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)
Profile
profile_img

著者 / TATSUO IKURA

初心者~中級者の方を対象としたプログラミング方法や開発環境の構築の解説を行うサイトの運営を行っています。