share facebook facebook twitter menu hatena pocket slack

2017.02.07 TUE

2 つの list 型データ(1 つは dict 型を内包している)でフィルタっぽいことをするメモ

川原 洋平

WRITTEN BY 川原 洋平

参考


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",
    "銘柄": "獺祭"
}

いけた。

飲み過ぎに

注意しましょう。

元記事はこちら

2 つの list 型データ(1 つは dict 型を内包している)でフィルタっぽいことをするメモ

cloudpack

cloudpackは、Amazon EC2やAmazon S3をはじめとするAWSの各種プロダクトを利用する際の、導入・設計から運用保守を含んだフルマネージドのサービスを提供し、バックアップや24時間365日の監視/障害対応、技術的な問い合わせに対するサポートなどを行っております。
AWS上のインフラ構築およびAWSを活用したシステム開発など、案件のご相談はcloudpack.jpよりご連絡ください。