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

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

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-08 03:23:16823ブラウズ

How Can I Efficiently Count Element Frequencies in a Python List?

順序なしリスト内の要素の頻度を数える

値の順序なしリストが与えられた場合、各要素の頻度を決定するのは一般的なプログラミング タスクです。このガイドでは、Python の collections.Counter モジュールを使用してこれを実現する方法について説明します。

collections.Counter を使用した解決策

Python 2.7 以降では、collections.Counter モジュールは効率的なカウント手段を提供します。要素の出現。リストを引数として Counter コンストラクターに渡すだけで、各一意の要素をそのカウントにマップする辞書のようなオブジェクトを取得できます。

import collections

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

ここで、Counter オブジェクトを使用して、各要素の周波数。以下に、一般的な操作をいくつか示します。

  • カウントをリストとして取得します。 カウントのリストを取得するには、counter.values() を使用します。
  • 一意の要素をリストとして取得します: counter.keys() を使用して一意の要素のリストを取得しますelements.
  • 最も一般的な要素を取得します: counter.most_common(n) を使用して、n 個の最も一般的な要素のリストを取得します。
  • 辞書を取得しますカウントの: dict(counter) を使用して Counter を通常の辞書に変換します。
  • Getソートされた順序でのカウント: リスト内包表記とsorted(counter.keys()) を使用して、元のリストと同じ順序でカウントのリストを取得します。
[counter[x] for x in sorted(counter.keys())]

互換性に関する考慮事項

Python 2.6 以前を使用している場合は、利用可能な Counter 実装をダウンロードしてインストールする必要がありますオンライン。

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

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