Irohabook
0
727

Pythonの辞書を値で並び替え(ソート)する:ラムダ式で昇順・降順にする

Python の辞書を値で昇順・降順に並び替えてみよう。

a = {'a': 3, 'b': 1, 'c': 2}
b = sorted(a.items(), key=lambda kv: kv[1])
c = sorted(a.items(), key=lambda kv: kv[1], reverse=True)

print(b)
print(c)

Python 出力

[('b', 1), ('c', 2), ('a', 3)]
[('a', 3), ('c', 2), ('b', 1)]

出力結果からわかるように、元の辞書が昇順・降順になった。Python の辞書を昇順に並び替えるには sorted 関数を使い、二番目の引数にラムダ式を入れる。ここはかなりわかりにくいので、最初は深く考えず、コードをコピーするくらいでいいかもしれない。

Python の辞書は意外とやっかいで、結果は辞書でなくリストになっている。リストの要素はタプルである。

降順に並び替える場合は三番目の引数に reverse=True を設定する。

ポイント

  1. sort でなく sorted を使う
  2. 一番目の引数に items を入れる
  3. 二番目の引数にラムダ式を入れる
  4. reverse=True で降順になる
次の記事

リスト・辞書