dictを値でソートして出力する

dictオブジェクトを走査するときなどに値でソートされた結果を得たい場合は、
sortedのkey引数に値を返す関数を指定すれば良い。(key引数はソートしたい値を返す関数を指定できるので、ここを実装すれば任意のソート方法でソートできる)

d = {"a": 3, "b": 2, "c": 1}
for k in sorted(d, key=lambda k:d[k]):
    print(k, d[k])    #c,b,aの順で出力

余談ですが、Pythonのdictはキーの順序を保証しないものでしたが(実装上そうなっていたとしても仕様では規定されていないかった)、Python3.7でこの仕様が変更になり挿入順序が保証されるように変更されました。

参考

ソート HOW TO

関連記事:

コメントを残す

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

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)