参考
stackoverflow.com
有難う、Stack Overflow 様様。
やりたいこと
以下のような sake_list という dict 型のデータを内包した list 型データがあるとする。
sake_list=[ {'銘柄': '八海山', '酸度': '1.0', '日本酒度': '+4.0'}, {'銘柄': '獺祭', '酸度': '1.1', '酒度': '+4.0'}, {'銘柄': '鍋島', '酸度': '未公表', '酒度': '未公表'}, {'銘柄': '久保田萬寿', '酸度': '1.2', '酒度': '+2.0'} ]
このデータを drank という list 型データと比較して、drank に含まれている銘柄の dict 型データだけフィルタして取り出したい。
drank=['八海山', '獺祭']
こんな感じで
# -*- coding: utf-8 -*- from prettyprint import pp drank=['八海山', '獺祭'] sake_list=[ {'銘柄': '八海山', '酸度': '1.0', '日本酒度': '+4.0'}, {'銘柄': '獺祭', '酸度': '1.1', '酒度': '+4.0'}, {'銘柄': '鍋島', '酸度': '未公表', '酒度': '未公表'}, {'銘柄': '久保田萬寿', '酸度': '1.2', '酒度': '+2.0'} ] sake = list(filter(lambda data: data['銘柄'] in drank, sake_list)) for drink in sake: # print str(drink).decode("string-escape") pp (drink)
事前に prettyprint モジュールをインストールしておきましょう。
pip install prettyprint
今宵も一献
# 試した環境 $ python -V Python 2.7.12 $ python sake.py { "日本酒度": "+4.0", "酸度": "1.0", "銘柄": "八海山" } { "酒度": "+4.0", "酸度": "1.1", "銘柄": "獺祭" }
いけた。
飲み過ぎに
注意しましょう。