とある変人のお道具箱

技術系のことにについて幅広く触れていくブログです

【Python】 リストの特定の要素の出現回数を取得する

今回は次のリストにおいて説明していきます

abcd_list = ["a","b","c","b","a","d","a"]

   

   

各要素の個数を求めたいとき(count()を使用)

例えば”a"の出現回数を求めたいときは「count()」を利用し、次のように記載します。

a_count = abcd_list.count("a")
f_count = abcd_list.count("f")
print(a_count)   #3
print(f_count)   #0

ちなみに引数に count(”f”) のように存在しないものを与えると 0 が返って来るので注意しましょう。
   
   

すべての要素の出現回数を求めたいとき(collections.Counter()を使用)

最も頻繁に現れる要素を調べたいときや出現回数順に並べたいときなどはcollections.Counter()を使うと便利です。

import collections
cc = collections.Counter(abcd_list)
print(cc)
#Counter({'a': 3, 'b': 2, 'c': 1, 'd': 1})

下のようにキーに求めたい要素を指定するとその個数を取得することが可能です。

print(cc["b"])   #2
print(cc["f"])   #0

ちなみにこれも cc["f"]のように存在しないものを与えると 0 が返って来るので注意しましょう。
   
   

出現回数順に要素を取り出したいとき(most_common()を使用)

most_common を使うと(要素,個数)のタプルを返してくれます。

print(cc.most_common())
#[('a', 3), ('b', 2), ('c', 1), ('d', 1)]

   
これを次のように指定してやれば最も頻繁に出てくる要素や個数を取り出すことができます。

#最も頻繁に出てくる要素
print(cc.most_common()[0][0])   #a

#最も頻繁に出てくる要素の個数
print(cc.most_common()[0][1])   #3

#二番目によく出てくる要素
print(cc.most_common()[1][0])   #b

#二番目によく出てくる要素の個数
print(cc.most_common()[1][1])   #2

   
リストと同じようにスライスにマイナスの値を指定すると少ない要素から順に取り出すことも可能です。

#一番少ない要素
print(cc.most_common()[-1][0])   #d

#一番少ない要素の個数
print(cc.most_common()[-1][1])   #1