Pythonのリストを辞書型のvalue値でソートする方法メモ
- 作者: Michal Jaworski,Tarek Ziade,稲田直哉,芝田将,渋川よしき,清水川貴之,森本哲也
- 出版社/メーカー: KADOKAWA
- 発売日: 2018/02/26
- メディア: 単行本
- この商品を含むブログを見る
はじめに
今勉強用に作ってるToDoリストのようなアプリケーションで、下のようなデータを扱っている。
tasks = [ {'TaskId':0, 'TaskTitle':'Fishing'}, {'TaskId':2, 'TaskTitle':'Cycling'}, {'TaskId':1, 'TaskTitle':'Running'} ]
このリストを中に入ってる辞書型のTaskIdでソートしたいけど方法が分からなかったので調べた見た。結論からいうとlambda式を使うことでシンプルに書けるみたい。
lambda式
lambda式のシンタックス
lambda <arg1>,<arg2>,...<argN>: <expressions>
↑のサイトが分かりやすかったです。
やってみる
こちらによるとリストのソートにはsorted()関数を使う。keyパラメータをlambda式を使って指定すると↓のようになる。
>>> print sorted(tasks, key=lambda x:x['TaskId']) [{'TaskId': 0, 'TaskTitle': 'Fishing'}, {'TaskId': 1, 'TaskTitle': 'Cycling'}, {'TaskId': 2, 'TaskTitle': 'Running'}]
なるほどlambda式を使うとスゴイシンプルに書ける。