■ はじめに
https://dk521123.hatenablog.com/entry/2019/10/12/084943
の続き。 今回は、ディクショナリ(辞書) (Dictionary)
目次
【1】辞書 【2】基本操作 1)要素の取得 2)空かどうかのチェック 3)キーの存在チェック 4)ループさせるには 5)辞書への追加 ※ その他の操作は、以下の関連記事を参照のこと。
Python ~ 基本編 / 辞書・あれこれ ~
https://dk521123.hatenablog.com/entry/2020/10/11/000000
【1】辞書
* { key : value, ... } を使う
構文
dic = {【キー1】: 【バリュー1】, 【キー2】: 【バリュー2】, ...}
サンプル
cities = {"Japan": "Tokyo", "Korea": "Seoul"} print(len(cities))
【2】基本操作
1)要素の取得
* 以下の2種類ある a)["key"] で取得する(e.g. dict["name"]) b)get("key") で取得する(e.g. dict.get("name")) << ★おすすめ★
差異
a)の場合、キーの値がなかったら例外が発生するが b)の場合、例外は発生せずに、デフォルト値が返ってくる
https://note.nkmk.me/python-dict-get/
サンプル
dict = {"key1":"Hello", "key2":"World"} # Hello print(dict.get("key1")) # World print(dict.get("key2")) # None print(dict.get("key3")) # !!! print(dict.get("key3", "!!!")) # 実験2 demo_dict = {"a": "True"} print(demo_dict.get("a", False)) # True print(type(demo_dict.get("a", False))) # <class 'str'> print(demo_dict.get("b", False)) # False print(type(demo_dict.get("b", False))) # <class 'bool'>
2)空かどうかのチェック
* (色々あるが)『not dict』を使う
サンプル
sample_dict = {} if not sample_dict: print('Empty') else: print('Not Empty')
3)キーの存在チェック
* 『"キー" in dict』を使う
サンプル
sample_dict = {'key1': 'value1', 'key2': 'value2'} # True print('key1' in sample_dict) # False print('keyX' in sample_dict)
4)ループさせるには
* items()を使う
サンプル
for key, value in cities.items(): print(key + " " + value) for index, (key, value) in enumerate(cities.items()): print(index + " : " + key + " " + value)
[補足1] キーのみでループしたい場合
# keys() を使う for key in cities.keys(): print(key)
[補足2] index 付でループしたい場合
demo_dict = { "JP": "japan", "US": "USA" } for (index, elements) in enumerate(demo_dict.items()): # 0 ('JP', 'japan') print(index, elements) # 0 JP japan print(index, elements[0], elements[1])
5)辞書への追加
a)update() を使う b)["KEY"] = "VALUE" を使う << ★こっちのほうがいい★
a)update() を使う
main_dict = {} main_dict.update({"JP": "Japan"}) main_dict.update({"US": "Unite States"}) for key, value in main_dict.items(): print(key + " " + value)
b)["KEY"] = "VALUE" を使う
main_dict = {} # 注意:update() だとリストはつかない(例外がでる) main_dict["JP"] = ["Japan", "Tokyo"] main_dict["US"] = ["Unite States", "New York"] for key, values in main_dict.items(): for value in values: print(key + " " + value)
関連記事
Python ~ 基本編 / 辞書・あれこれ ~
https://dk521123.hatenablog.com/entry/2020/10/11/000000
Python ~ 基本編 / リスト ~
https://dk521123.hatenablog.com/entry/2019/10/12/084943
Python ~ 基本編 / タプル・集合 ~
https://dk521123.hatenablog.com/entry/2019/10/26/000000
Python ~ 基本編 / ラムダ lambda ~
https://dk521123.hatenablog.com/entry/2019/09/23/000000
Python ~ 基本編 / 文字列 ~
https://dk521123.hatenablog.com/entry/2019/10/12/075251
Python ~ 基本編 / astモジュール ~
https://dk521123.hatenablog.com/entry/2021/10/01/000000