[Python] リストの各要素の出現個数をカウントする
はじめに
Pythonで、リストの各要素の個数をカウントする実装についてまとめます。
動作環境
windows11
Jupyter Notebook 6.4.5
Python 3.9.7
使用するサンプルデータ
使用しているデータは、下記のサイトを使用してダミーデータを作成しました。
A列「car_maker」、B列「car_model」、C列「year」のレコードで構成されたテーブルの中の、A列「car_maker」をリストとして使用します。
使用するライブラリ
collections
Pythonの標準ライブラリで、コンテナデータ型を提供するライブラリです。基本的なデータ型である、リスト、タプル、辞書に代わる特殊なコンテナ型のデータとなります。
実装
指定した要素の出現回数をカウントする
リスト型のcountメソッドで、第1引数に要素を指定することでカウントした数を取得することができます。
print(maker_list.count('Land Rover'))
各要素の出現回数をカウントする
collectionsライブラリのCounterオブジェクトを使用します。
引数にリストを渡すと、Counterオブジェクトが生成され、戻り値として取得することができます。
import collections
count = collections.Counter(maker_list)
print(count)
戻り値を出力すると、要素と、その要素の出現回数が、辞書型のようなデータ型で取得できているのが確認できます。
各要素の出現回数を高い順に並び替える
Counterオブジェクトのmost_commonメソッドで、出現回数の大きい順に並び替えを行うこともできます。
戻り値は、要素と、その要素の出現回数の組み合わせのタプル型のリストとなります。
sorted_by_desc_list = count.most_common()
print(sorted_by_desc_list)
なお、most_commonメソッドの戻り値はリスト型なので、スライスを使用して、逆順、つまり出現関数の少ない順に並び替えることも可能です。
sorted_by_asc_list = count.most_common()[::-1]
print(sorted_by_asc_list )
まとめ
今回は、Pythonの標準ライブラリのcollectionsで提供されている、Counterオブジェクトを使用して、リストの各要素の個数をカウントする実装についてまとめました。
この記事が気に入ったらサポートをしてみませんか?