三日月館【別館】開発・制作Tips集

[Python] 辞書の値を基準にしてソートする

最終更新:

fumiduki1985

- view
管理者のみ編集可
operatorモジュールのitemgetterオブジェクトを使用することで、辞書の「値」を基準としたソートを行うことができる。
記述例のように、sorted()関数のkey引数に指定して使用する。
また、itemgetterを利用すると「リストやタプルを要素とするリスト」を「要素内の任意のインデックスのデータ」でソートできる。

記述例:
import operator

dic = {'a':3, 'b':2, 'c':1}

# sortedに、[('a', 3), ('b', 2), ('c', 1)] というリストをソートさせる
# key=itemgetter(1) の効果により、各要素の1番目の値(上記リストでは数値のほう)でソートされる
sortedList = sorted(dic.items(), key=itemgetter(1))

# sortedListには、[('c', 1), ('b', 2), ('c', 3)] が返される
# ソート結果も辞書が必要な場合は、dict(sortedList)等で変換のこと。


このページのタグ一覧
Python プログラミング

記事メニュー
ウィキ募集バナー