PythonのcollectionsモジュールにはCounterという便利なクラスがあります。これはハッシャブルなオブジェクトを数えるためのdictのサブクラスで、要素は辞書のキーとして格納され、そのカウントは辞書の値として格納されます。

Counterをソートする方法はいくつかあります。

  1. Counter.most_common([N])メソッドを使用する
  2. .sorted()を使用してキーだけをソートする
  3. .sorted()を使用して与えられた(キー、値)ペアに基づいて値をソートする

それぞれの方法について詳しく見ていきましょう。

Counter.most_common([N])メソッドを使用する

このメソッドは、カウンターの最も一般的な要素から最も一般的でない要素へのカウントのソートされたリストを返します。Nが省略されると、カウンターのすべての要素を返します。Nが指定されている場合、返されるリストの最初のN要素のみを返します。

from collections import Counter
x = Counter({'a':5, 'b':3, 'c':7})
print(x.most_common())

このコードは、[('c', 7), ('a', 5), ('b', 3)]を出力します。

.sorted()を使用してキーだけをソートする

.sorted()メソッドは、任意のイテラブルをソートするために使用されます。ここでは、イテラブルとしてカウンターオブジェクトを使用します。

from collections import Counter
x = Counter({'a':5, 'b':3, 'c':7})
sorted(x, key=x.get, reverse=True)

このコードは、['c', 'a', 'b']を出力します。

これらの方法を使えば、PythonのCounterを効率的にソートすることができます。適切な方法を選んで、あなたのアプリケーションに適したソートを行いましょう。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です