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

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

(Last modified: )

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

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

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

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

実際の使い方は次の通りです。

print("dictionary".count("io"))
>> 1

print("Good School".count("oo"))
>> 2

print("Goooood".count("oo"))
>> 2

print("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 )が重複せずに現れる回数を返します。

実際の使い方は次の通りです。

print("Good School".count("oo"))
>> 2

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

print("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

プログラミングや開発環境構築の解説サイトを運営しています。