dogrunjp
5/17/2015 - 2:17 PM

Pythonでdictを要素としたリストをリスト内包表記を使い差分や一致する要素のみ取得したいとき

Pythonでdictを要素としたリストをリスト内包表記を使い差分や一致する要素のみ取得したいとき

Pythonでdictを要素としたリストをリスト内包表記を使い差分や一致する要素のみ取得したいとき

例えばJSONを取得し辞書型のリストを得て、 id等を別のリストのidとつき合わせて一致した要素だけを含むリストを新しく作りたいときのリスト内包表記。

list_match = [x for x in list_original if x['id'] in list_comparison]

ついでに…

##リストを要素のdictのある値でソートする

Pythonのリストのソートはインプレースでリストをソートする"list.sort()"と、 ソートしたリストを生成する"sorted()"がある。list.sortはリストのみに使えるが、 sorted()は任意のイテラブルなオブジェクトに用いることができ、keyパラメータを追加できる。

sorted(tuples, key=lambda name:name[1])

上の式の場合いくつかの要素からなる対象タプルの2番目の値をキーとしてソートする感じです。

対象がdictの場合添字でdictのkeyを指定できます。

sorted(dicts, key=lambda x:x["name"])