リストをソートするだけなら簡単なんですけど、リストの要素が辞書で、その辞書の値でソートしたい時はちょっと面倒だったのでメモ。面倒っていってもたかが知れてるというか、ハセテツ的に面倒だっただけですけど。
_d = [ { 'member': 'aaa', 'score': 500, }, { 'member': 'bbb', 'score': 300, }, { 'member': 'ccc', 'score': 100, }, { 'member': 'ddd', 'score': 200, }, { 'member': 'eee', 'score': 400, } ]
aaaさんからeeeさんがいて、それぞれ点数がscoreで表されてる時にscoreの高い順、低い順でソートします。
_asc = sorted(_d, key=lambda member: member['score']) for item in _asc: print item['member'], item['score'] print '-------------------' _desc = sorted(_d, key=lambda member: member['score'], reverse=True) for item in _desc: print item['member'], item['score']
出力されるのは以下になります。
ccc 100
ddd 200
bbb 300
eee 400
aaa 500
——————-
aaa 500
eee 400
bbb 300
ddd 200
ccc 100
reverse=Trueをつければ降順だし、つけなければ昇順です。覚えておくと便利です。