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 を設定する。
ポイント
- sort でなく sorted を使う
- 一番目の引数に items を入れる
- 二番目の引数にラムダ式を入れる
- reverse=True で降順になる
リスト・辞書
-
Pythonのlen関数:辞書の要素数(長さ)を取得する02183
-
Pythonの辞書から要素を削除する(del)0177
-
Pythonの辞書から要素を削除する(pop)0203
-
Pythonの辞書からキーと値をforで取得する0140
-
listの基本的な使い方|Python0802
-
辞書の基本的な使い方|Python0254
-
Pythonの集合(要素の存在確認、追加、削除)010211
-
Pythonのリスト:インデックスを指定して値を取得する02732
-
Pythonのリストを連結する(足し算)04100
-
Pythonのリストで特定の値を削除する(remove)01607
-
Pythonでリストから要素を削除する(del)01102
-
Pythonで整数の範囲をリストに入れる(range)09006
-
Pythonのリストから重複する要素をカウントする(count)011469