見出し画像

[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)

戻り値を出力すると、要素と、その要素の出現回数が、辞書型のようなデータ型で取得できているのが確認できます。

collectionsライブラリのCounterオブジェクトの戻り値

各要素の出現回数を高い順に並び替える

Counterオブジェクトのmost_commonメソッドで、出現回数の大きい順に並び替えを行うこともできます。
戻り値は、要素と、その要素の出現回数の組み合わせのタプル型のリストとなります。

sorted_by_desc_list = count.most_common()
print(sorted_by_desc_list)
most_commonメソッドの実行結果

なお、most_commonメソッドの戻り値はリスト型なので、スライスを使用して、逆順、つまり出現関数の少ない順に並び替えることも可能です。

sorted_by_asc_list = count.most_common()[::-1]
print(sorted_by_asc_list )
most_commonメソッドの戻り値を逆順にした場合の実行結果

まとめ

今回は、Pythonの標準ライブラリのcollectionsで提供されている、Counterオブジェクトを使用して、リストの各要素の個数をカウントする実装についてまとめました。


この記事が気に入ったらサポートをしてみませんか?