言語バージョン 3.9.0

公開日 December 6, 2020, GMT+9

更新日 January 15, 2021, GMT+9

コード例の出力としてprint関数を使用しています。

使用方法がわからない場合は以下のページを参照してからコード例を確認してください。

print関数の使用方法


このページはstrクラスのcountメソッドについて解説したページです。
listクラスのcountメソッドについては count(listクラス)の使用方法 を参照してください。

count(str、文字列)

このページでは豊富な例を用いてPythonのstrクラスのcountの使い方を学ぶことができます。

countはstrクラスのメソッドの1つです。
呼び出し元の文字列(strオブジェクト)に対して、 第1引数で指定した文字列が何回含まれるかをカウントしてその値を整数(intオブジェクト)として返します。
第2引数と第3引数を指定することで、指定した文字列を検索する範囲も指定することができます。

# 定義
str.count(sub[, start[, end]]) -> int

出典:count(strクラス) - Pythonドキュメント

TL;DR

基本

# 第1引数に与えた文字列を検索してカウントする
string1 = 'Python Golang JavaScript Python Python Java'
count1 = string1.count('Python')
print(count1)
==> 3
# 大文字・小文字が区別されてカウントされる
count2 = string1.count('python')
print(count2)
==> 0



# 連続した文字列を検索する場合は文字列を重複してカウントしない
string2 = 'AAaaAAaaaaAAaaa'
print(string2.count('aa'))
==> 4

文字列の検索範囲指定

string1 = 'I have a pen. I have an apple'
# 通常のカウント
count1 = string1.count('I')
print(count1)
==> 2
# 範囲を指定してカウント
# 以下の指定は'I have a p'までの範囲で検索する
count2 = string1.count('I', 0, 10)
print(count2)
==> 1
# スライス表記では以下と同等
count3 = string1[0:10].count('I')
print(count3)
==> 1
print(string1[0:10])
==> I have a p




string2 = 'py js py java go py ts py kt'
print(string2.count('py'))
==> 4
# ' py java go py'の範囲で検索してカウント
print(string2.count('py', 5, 20))
==> 2




# 第3引数を省略した表記も可能
string3 = 'apple'
# 'ple'の範囲でカウントする
print(string3.count('p', 2))
==> 1
# スライス表記では以下と同等
print(string3[2:])
==> ple
print(string3[2:].count('p'))
==> 1

解説

# 定義
str.count(sub[, start[, end]]) -> int

出典:count(strクラス) - Pythonドキュメント

基本

countは第1引数に文字列を指定し、呼び出し元の文字列に対して対象の文字列がいくつ含まれているかをカウントします。
戻り値(返り値)はカウントした値をintオブジェクトとして返します。

string1 = 'apple,banana,kiwi,orange,orange,kiwi,kiwi'
count1 = string1.count('kiwi')
print(count1)
==> 3
# 大文字・小文字が区別されてカウントされる
count2 = string1.count('KIWI')
print(count2)
==> 0



# 連続した文字列のカウント
string2 = 'aaaAAaaaaaaAAaaaa'
print(string2.count('aaa'))
==> 4

文字列の検索範囲指定

第2引数と第3引数を与えることで、呼び出し元の文字列に対して検索する範囲を指定することができます。

第2引数に検索を始めるインデックス、第3引数に検索を終えるインデックスを指定します。
この指定はスライス表記で S[(検索を始めるインデックス):(検索を終えるインデックス)] と指定した場合と同じ範囲です。
第3引数を省略すると、第2引数のインデックス位置から文字列の最後までを検索範囲とします。

string1 = 'pen pineapple apple pen'
count1 = string1.count('apple')
print(count1)
==> 2
# 'pen pineapple a'の範囲でカウント
count2 = string1.count('apple', 0, 15)
print(count2)
==> 1
# スライス表記では以下と同様
print(string1[0:15])
==> pen pineapple a
print(string1[0:15].count('apple'))
==> 1



string2 = 'py js py py py java'
# 'js py py py java'の範囲でカウント
count3 = string2.count('py', 3)
print(count3)
==> 3
# スライス表記では以下と同様
print(string2[3:])
==> js py py py java
print(string2[3:].count('py'))
==> 3

1次情報

count(strクラス) - Pythonドキュメント

スライス表記 (slicing) - Pythonドキュメント