ホームページ >バックエンド開発 >Python チュートリアル >順序なし Python リスト内の要素の頻度を効率的にカウントするにはどうすればよいですか?

順序なし Python リスト内の要素の頻度を効率的にカウントするにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-03 17:28:40725ブラウズ

How to Efficiently Count Element Frequencies in an Unordered Python List?

順序なしリスト内の要素の頻度を取得する

a = [5, 1, 2, 2, 4、3、1、2、3、1、1、5、2]。目標は、リスト内のそれぞれの一意の値の頻度を決定することです。目的の出力は b = [4, 4, 2, 1, 2] に似ており、値 1 が 4 回出現し、2 が 4 回出現し、3 が 2 回出現し、4 が 1 回出現し、5 が 2 回出現することを示します。

Python では、このタスクに便利なソリューションは collections.Counter クラスを利用することです。 Python 2.7 以降では、このクラスは、順序なしコレクション内の要素の出現をカウントするプロセスを簡素化します。

import collections

a = [5, 1, 2, 2, 4, 3, 1, 2, 3, 1, 1, 5, 2]
counter = collections.Counter(a)

collections.Counter オブジェクトのカウンターは、リスト内の各一意の値のカウントを保持します。 。さまざまなメソッドを使用してカウントにアクセスできます。

  • counter.values(): それぞれの一意の値のカウントを含むリストを返します。
  • counter.keys(): リストを返します。
  • counter.most_common(n): 最も頻繁に出現する n 個の値と、
  • dict(counter): Counter オブジェクトを、キーを一意の値とし、値をカウントとする通常の辞書に変換します。

指定された順序でカウントを取得するには質問では、ソートされた順序でキーを反復できます:

[counter[x] for x in sorted(counter.keys())]

Python 2.6 以前を使用している場合は、次のことができます。提供されたリンクから collections.Counter の実装をダウンロードし、コードで使用します。

以上が順序なし Python リスト内の要素の頻度を効率的にカウントするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。