キーでソートして出力
Python の dictionary の要素をキー順に取り出すには、dict.keys() メソッドで dictionary からキーの一覧を取り出し、それを sorted() 関数で昇順ソートしてループ処理します。
つまり、キーのリストをソートしているだけです。
>>> d = {'BBB': 200, 'AAA': 300, 'CCC': 100}
>>> for key in sorted(d.keys()):
... print(key, d[key])
AAA 300
BBB 200
CCC 100キー名で降順ソートしたいときは、sorted() 関数に reverse=True パラメーターを指定します。
>>> d = {'BBB': 200, 'AAA': 300, 'CCC': 100}
>>> for key in sorted(d.keys(), reverse=True):
... print(key, d[key])
CCC 100
BBB 200
AAA 300値でソートして出力
sorted() 関数の key パラメーターをうまく使うと、dictionary の「値」によりソートされたキーを列挙できます。
次の例では、値の昇順 (100, 200, 300) でループ処理しています。
>>> d = {'BBB': 200, 'AAA': 300, 'CCC': 100}
>>> for key in sorted(d, key=lambda x:d[x]):
... print(key, d[key])
CCC 100
BBB 200
AAA 300降順ソート (300, 200, 100) したいときは、sorted() 関数に reverse=True パラメーターを指定します。
>>> d = {'BBB': 200, 'AAA': 300, 'CCC': 100}
>>> for key in sorted(d, reverse=True, key=lambda x:d[x]):
... print(key, d[key])
AAA 300
BBB 200
CCC 100参考
- リストを昇順ソート/降順ソートする (
list.sort,sorted) - dictionary の内部的な要素順序を変更する (
dict,OrderedDictionary)- Python 3.7 以降は、dictionary への要素の追加順序が内部的に保持されるようになっています。