icon
icon

Pythonのcountメソッドを使う方法を現役エンジニアが解説【初心者向け】

初心者向けにPythonのcountメソッドについて現役エンジニアが解説しています。countメソッドとは文字列や要素の数を数えてくれるメソッドです。指定の文字がいくつ含まれているか、リストの中に要素がいくつあるかを計算することが出来ます。また、countメソッドを使わずにループ文で数える方法も解説しています。

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

監修してくれたメンター

清水 源一郎

企業勤務の研究者として、機械学習やデータサイエンスを活用した製品開発を行っている。
テックアカデミーでは、Pythonコース、AIコース、データサイエンスコースを担当。

Pythonのcountメソッドについて、テックアカデミーのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。

目次

1時間でできる無料体験!

そもそもPythonについてよく分からないという方は、Pythonとは何なのか解説した記事を読むとさらに理解が深まります。

 

田島悠介

今回は、Pythonに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

Pythonのcountメソッドについて詳しく説明していくね!

大石ゆかり

お願いします!

 

Pythonで文字列型とリスト型のメソッドであるcountを使って、文字や要素の登場回数を数える方法を解説します。

countメソッドを使うことで、for文による繰り返し処理で数える場合よりも簡潔に書けるようになります。

文字列型とリスト型でのcountメソッドの使い方を順番に説明します。

 

文字列でのcountメソッドの使い方

文字列型のcountメソッドの使い方を説明します。

次のようなコードで、文字列中の指定した部分文字列の出現回数を数えることができます。

start, endを使って文字列中の特定の範囲に含まれる要素だけを数えることもできます。

indexがstart以上end未満となる文字列の範囲がcountの対象です。

startのみを指定することも可能です。

string.count(sub, start, end)
  • string :文字列型の変数を表します。
  • sub :カウントしたい部分文字列を指定します。1文字でも複数文字でも構いませんが、要素を指定しない場合はエラーになります。
  • start :文字列の何番目からカウントをスタートするかを整数値で指定できます。この項目はオプションですので、文字全体に適用したい場合などには指定する必要はありません。
  • end :文字列の何番目までカウントするかを整数値で指定できます。この項目はオプションですので、文字全体に適用したい場合などには指定する必要はありません。

実際に使ってみると

文字列に対してcountメソッドを使う実際のコードを見ていきましょう。

以下の4つの具体例を紹介します。

  • countを使って文字列中の指定した部分文字列を数える基本的な例
  • start, end引数を使ってcountの対象範囲を指定する
  • startだけを指定してcountの対象範囲を指定する
  • startやendに負の値を指定し、後ろから数えて範囲を指定する

countを使って文字列中の指定した部分文字列を数える基本的な例

string1 = 'Hello world'
string2 = 'l' 
number1 = string1.count(string2)
print("Total Number: {}".format(number1))

解説

1, 2行目でstring1という変数に文字列’Hello world’を、string2という変数に文字列’l’をそれぞれ格納しています。

3行目でstring1のcountメソッドを使い、カウントした結果を変数number1に代入しています。

countメソッドを使用する際に、カウントしたい文字列のみを指定しています。

そのため、文字列に含まれているすべての’l’をを数えています。

結果

Total Number: 3

 

start, end引数を使ってcountの対象範囲を指定する

string1 = 'Hello world'
string2 = 'l' 
number2 = string1.count(string2, 3, 9)
print("Total Number: {}".format(number2))

解説

今回は引数start, endを使ってcountの対象範囲を指定しています。

start, endの値が3, 9であればindexが3以上9未満、すなわち、4文字目から9文字目までの’lo wor’が数える範囲です。

この範囲では、’l’は1つだけですね。

 

結果

Total Number: 1

 

startだけを指定してcountの対象範囲を指定する

string1 = 'Hello world'
string2 = 'l' 
number3 = string1.count(string2, 6)
print("Total Number: {}".format(number3))

解説

startだけを指定して7文字目以降の’world’をcountの対象にしています。

そのため、’world’の中に含まれる1個の’l’をカウントしています。

 

結果

Total Number: 1

 

startやendに負の値を指定し、後ろから数えて範囲を指定する

string1 = 'Hello world'
string2 = 'l' 
number4 = string1.count(string2, 0, -2)
print("Total Number: {}".format(number4))

解説

startやendには負の数を入れると、文字列の最後から何番目かを指定することになります。

endが-2であれば、後ろから2番目より前までという範囲です。

 

‘Hello wor’が対象となって、countの結果は2です。

結果

Total Number: 2

 

リストでのcountメソッドの使い方

リスト型のcountメソッドの使い方を説明します。

次のようなコードで、リスト中の指定した要素の出現回数を数えることができます。

 

list.count(value)
  • list :リスト型の変数を表します。
  • value: 数値、文字列など要素を指定する必要があります。要素なしまたは複数の要素を指定した場合にはTypeErrorが発生します。

実際に使ってみると

リストに対してcountメソッドを使う実際のコードを見ていきましょう。

以下の3つの具体例を紹介します。

  • countを使ってリスト中の指定した要素を数える基本的な例
  • 大文字と小文字が含まれる例
  • 数値と文字列の要素が混在している例

countを使ってリスト中の指定した要素を数える基本的な例

list1 = ['a', 'a', 'a', 'b','a', 'b', 'b', 'a', 'c', 'b'] 
print("Total Number: {}".format(list1.count('b')))

解説

リストに含まれる’b’の数を数えています。

 

結果

Total Number: 4

 

大文字と小文字が含まれる例

list2 = ['Cat', 'Bat', 'Sat', 'Cat', 'cat', 'Mat', 'Bat', 'Sat', 'Cat', 'cat'] 
print("Total Number: {}".format(list2.count('Cat')) )

解説

リストに含まれる’Cat’の数を数えています。

Pythonでは大文字と小文字を区別しますので’cat’の数は含まれません。

 

結果

Total Number: 3

 

数値と文字列の要素が混在している例

list3 = [1, 2, 1, 3, '1', 2, 1, 3, 2, 1] 
print("Total Number: {}".format(list3.count(1)))

解説

リストに含まれる1の数を数えています。

1は数値なので、文字の’1’はカウントされません。

 

結果

Total Number: 4

 

[PR] Pythonで挫折しない学習方法を動画で公開中

まとめ

今回は、countメソッドを使って、文字列やリスト中の特定の要素の数を数える方法を解説しました。

簡単に使えて便利なので、ぜひ活用してみてください。

 

なお、複数の要素を数えたい場合にはCounterを使うことができます。

興味がある方は、PythonのCounterの使い方を現役エンジニアが解説【初心者向け】をご覧ください。

 

 

大石ゆかり

内容が分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

コラム

コスパとタイパ、両方結果的に良くなる良くなる学び方とは?

「スクールは高いし時間も縛られて効率が悪い」と考える方は多いと思います。
もちろん、時間も費用もかかることは間違いありません。
ただ 結果的に無駄な学びにお金も時間もかける方がリスクが高いという考えもあります。

コスパ・タイパ最適化の参考として、 テックアカデミー卒業生がスクールを選んだ理由 をご紹介します。

  • ・困ったときに、質問や相談できる相手がいるため挫折しなかった
  • ・プロとして必要なスキルのみを深く学べたので無駄がなかった
  • ・副業案件の提供と納品までのサポートがあったので目的を達成できた

安価・短期間で広く浅く学んでも意味がありません。 本当に自分の目的が達成できるか、それが重要です。
自分にどのスキルや学び方が合っているか、どんな学習方法かなど、お気軽に 無料相談 に参加してみませんか?

カウンセラー・現役のプロへ、何でも気軽に無料相談可能。 30分か60分お好きな時間が選べて、かつ3回まで すべて無料で ご利用できます。
無理な勧誘は一切ない ので、お気軽にご参加ください。

今なら相談した方限定の割引・参加特典付き! 無料相談はこちら

Pythonを学習中の方へ

これで解説は終了です、お疲れさまでした。

  • つまずかず「効率的に」学びたい
  • 副業や転職後の「現場で使える」知識やスキルを身につけたい

プログラミングを学習していて、このように思ったことはありませんか?

テックアカデミーのPythonコースでは、第一線で活躍する「プロのエンジニア」が教えているので、効率的に実践的なスキルを完全オンラインでしっかり習得できます。

合格率10%の選考を通過した、選ばれたエンジニアの手厚いサポートを受けながら、人工知能(AI)や機械学習の基礎を学べます。

まずは一度、無料体験で学習の悩みや今後のキャリアについて話してみて、「現役エンジニアから教わること」を実感してみてください。

時間がない方、深く知ってから体験してみたい方は、今スグ見られる説明動画から先に視聴することをおすすめします!

初心者・未経験でもできる。まずはテックアカデミーに相談しよう

プログラミングを独学で学習していて、このように感じた経験はないでしょうか?

  • ・調べてもほしい情報が見つからない
  • ・独学のスキルが実際の業務で通用するのか不安
  • ・目標への学習プランがわからず、迷子になりそう

テックアカデミーでは、このような 学習に不安を抱えている方へ、マンツーマンで相談できる機会を無料で提供 しています。
30分間、オンラインでどんなことでも質問し放題です。

「受けてよかった」と感じていただけるよう カウンセラーやエンジニア・デザイナー があなたの相談に真摯に向き合います。

「自分に合っているか診断してほしい」
「漠然としているが話を聞いてみたい」

こんなささいな悩みでも大丈夫です。

無理な勧誘は一切ありません ので、まずはお気軽にご参加ください。
※体験用のカリキュラムも無料で配布いたします。(1週間限定)

今なら参加者限定の割引特典付き! 無料相談を予約する