読者です 読者をやめる 読者になる 読者になる

女子力発電所(仮題)

ブログの中身も人生もぶれる日々

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'}]