今回は、文字や文字列、リストや辞書に対して、出現回数を求める方法を解説します。
「count関数」の基本的な使い方として、「(文字列).count(求めたい文字)」で簡単に出現回数を求めることができます。
また、出現回数に関連して、collectionsモジュールを用いることで、リストのすべての要素に対しての出現回数を簡単に求めてくれる便利な関数についても解説しました。
さらに、count関数を用いないで出現回数を求める方法についても詳しく解説していますので少しでも役に立てば幸いです。
無料オンライン相談を活用しよう!
Pythonというプログラミング言語は機械学習の人気の高まりなどもあり、様々なスクールが無料説明会を開催しています。
その中でも「Freeks(フリークス)|業界初!10,780円のサブスク型プログラミングスクール」がオススメです。Pythonを効率よく学びたいという方はまずは適性を知るためにも無料説明会を利用しましょう。
コンテンツ
文字・文字列の出現回数を求める
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
s = "abbccc" print(s) # abbccc print(s.count("a")) # 1 print(s.count("b")) # 2 print(s.count("c")) # 3 print(s[1:3]) # b print(s[1:3].count("b")) # 2 print(s.count("b", 1, 3)) # 2 |
「count」関数の使い方は、第一引数に出現回数を求めたい文字や文字列を渡します。
第二、第三引数には、任意で文字列の何文字目から何文字目までの出現回数を求めるのかを指定することができます。
参考:【Python入門】初めてのプログラミング(append関数, extend関数, insert関数と処理速度)
次に、文字列の出現回数を求めて行きましょう。
1 2 3 4 5 6 7 8 9 10 11 |
l = "apple, banana, banana, cheery, cheery, cheery" print(l.count("apple")) # 1 print(l.count("banana")) # 2 print(l.count("cheery")) # 3 |
リストに対して出現回数を求める
count関数の使い方としては、先ほどの文字や文字列の場合と変わりません。
1 2 3 4 5 6 7 8 9 10 11 |
l = ["apple", "banana", "banana", "cheery", "cheery", "cheery"] print(l.count("apple")) # 1 print(l.count("banana")) # 2 print(l.count("cheery")) # 3 |
タプルについても全く同じなので省略します
辞書に対して出現回数を求める
辞書の要素を取り出すために、「d.keys()」や「d.values()」を行った値に対してリストに変換することで今までと同じように出現回数を求めることができます。
1行ずつ見るとそこまで難しくないはずです!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
d = {"a" : "aa", "b" : "bb"} print(d) # {'a': 'aa', 'b': 'bb'} print(d.keys()) # dict_keys(['a', 'b']) print(list(d.keys())) # ['a', 'b'] print(list(d.keys()).count("a")) # 1 print(d.values()) # dict_values(['aa', 'bb']) print(list(d.values())) # ['aa', 'bb'] print(list(d.values()).count("aa")) # 1 |
出現回数を求めるのは簡単にできますね!
count関数用いないで出現回数を求める
ここからは、count関数を用いないで文字や文字列の出現方法を調べていきましょう。
辞書型配列に登録する
文字の出現回数を求める考え方を解説します。
- 辞書に未登録の場合:新規にその単語「Key」を辞書に登録する。値は「1」
- 辞書に登録済の場合:その単語の「Value」の値を+1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
fruits = ["apple", "banana", "banana", "cheery", "cheery", "cheery"] d = {} for fruit in fruits: if fruit not in d: d[fruit] = 1 else: d[fruit] += 1 for key, value in d.items(): print("{} : {}個".format(key, value)) """ apple : 1個 banana : 2個 cheery : 3個 """ |
ちなみに、この方法はよく用いる重要な考え方です!
collectionsモジュールを用いる
1 2 3 4 5 6 7 |
from collections import Counter fruits = ["apple", "banana", "banana", "cheery", "cheery", "cheery"] print(Counter(fruits)) # Counter({'cheery': 3, 'banana': 2, 'apple': 1}) |
「Counter」関数は1行で出現回数が求められる便利な関数です。返り値は辞書型になります。
とっても簡単に出現回数が求められました!
公式サイトはこちら
まとめ
最後までお読みいただきありがとうございます。
今回は、文字や文字列、リストや辞書に対して、出現回数を求める方法を解説しました。
基本的な使い方として、「(文字列).count(求めたい文字)」で簡単に求められることがわかりました。
本記事が少しでも参考になれば幸いです。
無料の説明会を有効活用しよう!
独学での学習は孤独感を感じやすく挫折してしまう初心者も多いです。また、参考書を購入しても全く読む気にならないという方も多いはずです。
それでも、なんとかPythonの勉強を行い、高スキルなエンジニアを目指したいという方は無料で受けられるオンライン説明会に参加してみることも一つの手です。
Pythonというプログラミング言語は機械学習の人気の高まりなどもあり、様々なスクールが無料説明会を開催しています。
その中でも「Freeks(フリークス)|業界初!10,780円のサブスク型プログラミングスクール」がオススメです。Pythonを効率よく学びたいという方はまずは適性を知るためにも無料説明会を利用しましょう。