ほんじゃらねっと

ダイエット中プログラマのブログ

Pythonで辞書を要素とする配列を特定のキーでソート

探したけど見つからなかった。
初めてのlambda。

ranking_list = []
ranking_list.append({"uriage": 30, "shiire": 5, "zairyo": 20 })
ranking_list.append({"uriage": 20, "shiire": 10, "zairyo": 10 })
ranking_list.append({"uriage": 10, "shiire": 15, "zairyo": 30 })
# zairyoが高い順にソート
ranking_list.sort(lambda a, b : cmp(b["zairyo"], a["zairyo"]))
print ranking_list
# shiireが低い順にソート
ranking_list.sort(lambda a, b : cmp(a["shiire"], b["shiire"]))
print ranking_list


<追記>
Python2.4以降ではもっと短い書き方があるらしい。
ググりんぐレベルが足りなかったかー


コメント欄または下記参照
http://d.hatena.ne.jp/bonlife/20070823