Python備忘録:リスト化されたディクショナリーの値でソートをする場合の件
何かタイトルがわけ分からん感じかもしれないけどですね、要するに
data = [{'id':'50','data':'AAAA'}, {'id':'7','data':'BBBBB'}, {'id':'256','data':'CCCCCC'}]
というリストになったデータが有ったとして、idでソートをかけるために
data.sort(key=lambda x:x['id'])
とやるとですね、idは文字列扱いなので当然結果は
[{'data': 'CCCCCC', 'id': '256'}, {'data': 'AAAA', 'id': '50'}, {'data': 'BBBBB', 'id': '7'}]
となるわけです。idを数値としてみなしてソートかけたい場合は
data.sort(key=lambda x:int(x['id']))
ということを忘れないようにしたいですね!(以下が修正後の実行結果)
[{'data': 'BBBBB', 'id': '7'}, {'data': 'AAAA', 'id': '50'}, {'data': 'CCCCCC', 'id': '256'}]