Dictionaries

辞書は、キー(keys)と値(values)からなり、キーで値を取得する形のデータ形式で、ツリー状に階層のあるデータを扱うのに適しています。 表計算アプリケーションに慣れていると、ものごとを四角く考えがちですが、日常生活では、むしろツリー状に考えることが多いです。

買い物リストの例を示します。

Pythonのdictionariesには、次のルールがあります。

  1. 辞書の基本的な形は、{キー: 値}である。

  2. 値に辞書やリスト[item1, item2,,,]をおくことができる。

  3. 文字は’ ’ではさみむ。

買う場所の下に買うものが配置されたツリー状の形にするのが便利です。

# 辞書を作成
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}]