1. ホーム
  2. python

[解決済み] Python 3 dict を値でソートする

2023-05-01 08:43:48

質問

私が見つけた唯一のメソッドはpython2用に動作するか、またはタプルのリストのみを返します。

辞書をソートすることは可能でしょうか、例えば {"aa": 3, "bb": 4, "cc": 2, "dd": 1} のように、値でソートすることはできますか?

私が実現したいソートされた辞書の順序は、大きいものから小さいものまでです。私は結果がこのようになることを望みます。

bb 4
aa 3
cc 2
dd 1

そして、ソートした後にテキストファイルに保存したいのです。

どのように解決するのですか?

itemgetter (他の回答を参照してください)は、(私が知っているように)大規模な辞書のためのより効率的ですが、一般的なケースでは、私は信じています。 d.get が勝つと思います。そして、それは余分な import .

>>> d = {"aa": 3, "bb": 4, "cc": 2, "dd": 1}
>>> for k in sorted(d, key=d.get, reverse=True):
...     k, d[k]
...
('bb', 4)
('aa', 3)
('cc', 2)
('dd', 1)

代わりに d.__getitem__ として key 関数と比較して、若干のパフォーマンス向上が期待できます。 d.get .