辞書は、キー(keys)と値(values)からなり、キーで値を取得する形のデータ形式で、ツリー状に階層のあるデータを扱うのに適しています。 表計算アプリケーションに慣れていると、ものごとを四角く考えがちですが、日常生活では、むしろツリー状に考えることが多いです。
買い物リストの例を示します。
Pythonのdictionariesには、次のルールがあります。
辞書の基本的な形は、{キー: 値}である。
値に辞書やリスト[item1, item2,,,]をおくことができる。
文字は’ ’ではさみむ。
買う場所の下に買うものが配置されたツリー状の形にするのが便利です。
# 辞書を作成
shopping = {
'jusco': {'books': {'ファウスト': 900}, 'foods': {'carrots': 300, 'tomatoes': 400}},
'vdrug': {'surgicalMasks': 600, 'stomachMedicine': 1800, 'foods':{'tofu': 100}},
'lawson': {'books': {'文春': 400, '日経': 160}}
}
RStudioでツリー上に表示します。
検索してみましょう。
a.Where shall I go for shopping?
shopping.keys()
## dict_keys(['jusco', 'vdrug', 'lawson'])
b.What shall I buy at Jusco?
shopping['jusco'].keys()
## dict_keys(['books', 'foods'])
c. What books shall I buy today?
List comprehensionを使います。
item = 'books'
res = [sub[item] for sub in shopping.values() if item in sub.keys()]
print(res)
## [{'ファウスト': 900}, {'文春': 400, '日経': 160}]