Python
 Computer >> コンピューター >  >> プログラミング >> Python

【Python入門】配列(リスト)内の全要素の出現頻度をカウントする2つの方法

このチュートリアルでは、配列(リスト)内のすべての要素が出現する回数(頻度)を求めるプログラムの作成方法を解説します。Pythonでは主に2つのアプローチがあり、それぞれ実装方法とコード例を見ていきましょう。

方法1:dict(辞書)を使う

まずは、標準的なdict(辞書)を使った基本的な方法です。処理の流れは以下の通りです。

  • 配列を初期化します。

  • 空の辞書を初期化します。

  • リストを反復処理します。

    • 要素が辞書に存在しない場合は、値を 1 に設定します。

    • 要素がすでに辞書に存在する場合は、値を +1 してカウントを増やします。

  • 辞書を反復処理しながら、要素とその出現回数を出力します。

コード例

実際のコードを見てみましょう。

# リストを初期化
arr = [1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3]
# 各要素の頻度を格納するための辞書を初期化
elements_count = {}
# 要素ごとの出現回数をカウント
for element in arr:
    # 辞書に要素が存在するかどうかを確認
    if element in elements_count:
        # カウントを +1 する
        elements_count[element] += 1
    else:
        # カウントを 1 に設定
        elements_count[element] = 1
# 要素と出現回数を出力
for key, value in elements_count.items():
    print(f"{key}: {value}")

実行結果

上記のプログラムを実行すると、以下のような結果が得られます。

1: 3
2: 4
3: 5

次に、collections モジュールの Counter クラスを使った2つ目の方法を見てみましょう。

方法2:Counterクラスを使う

collections.Counter を使うと、より簡潔に頻度をカウントできます。手順は以下の通りです。

  • collections モジュールをインポートします。

  • 配列を初期化します。

  • リストを Counter クラスに渡し、結果を変数に格納します。

  • 結果を反復処理しながら、要素と出現回数を出力します。

コード例

以下のコードを確認してください。

# collectionsモジュールをインポート
import collections
# リストを初期化
arr = [1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3]
# Counterクラスで各要素の出現回数を取得
elements_count = collections.Counter(arr)
# 要素と出現回数を出力
for key, value in elements_count.items():
    print(f"{key}: {value}")

実行結果

上記のコードを実行すると、先ほどのdictを使った方法と同じ出力が得られます。

1: 3
2: 4
3: 5

まとめ

今回は、Pythonで配列内の全要素の出現頻度をカウントする2つの方法を紹介しました。自前でロジックを実装したい場合は dict を、少ないコード量で手軽に実現したい場合は collections.Counter を使うのがおすすめです。チュートリアルについて不明な点がある場合は、コメント欄でお気軽にお尋ねください。

  1. Pythonで配列の反転数(転倒数)をカウントする方法

    はじめに この記事では、配列内の反転(インバージョン)をカウントする問題とその解決策について詳しく解説します。 問題定義 問題: リストが与えられたとき、その中に含まれる反転の数をカウントして表示します。 反転数とは、配列を昇順にソートされた状態にするために必要な入れ替え(スワップ)の回数を表す指標です。具体的には、i < j かつ arr[i] > arr[j] を満たす要素のペア(i, j)の総数として定義されます。 実装例 # 反転数をカウントする関数 def InvCount(arr, n): inv_count = 0 for i in range(n

  2. Pythonで整数配列の重複を除去し、個別の要素だけを出力する方法

    整数型の配列が与えられ、その中には重複した要素が含まれている場合があります。この記事では、重複を取り除いて個別(ユニーク)な値だけを出力するPythonプログラムを解説します。 実行例 入力:A = [1, 2, 3, 4, 2, 3, 5, 6] 出力:[1, 2, 3, 4, 5, 6] アルゴリズム このプログラムは次の手順で動作します。 配列の要素を入力として受け取ります。 各要素を先頭から順番に1つずつ取り出します。 取り出した要素が、それ以前にすでに出力されたものかどうかを確認します。 初期値0のフラグ変数を用意し、すでに表示済みなら1、未表示なら0のままにします。 フラ