雑記 in hibernation

頭の整理と備忘録

Pythonで2次元の辞書に要素を追加する

表題まんまです。入れ子になっている辞書に要素を追加する方法の備忘録です。

1次元の辞書

こんな辞書があったとしまして、、、

dict_1dim = {"a":1, "b":2, "c":3}
dict_1dim
{'a': 1, 'b': 2, 'c': 3}


こんな感じで要素を追加できます。

dict_1dim["d"]=4
dict_1dim
{'a': 1, 'b': 2, 'c': 3, 'd': 4}


2次元の辞書

キー"a"が辞書を要素にもつ2重構造の場合で、"a"の辞書内に要素を追加したい場合はどうでしょうか。

dict_2dim = {"a":{"x":1, "y":2}, "b":2, "c":3}
dict_2dim
{'a': {'x': 1, 'y': 2}, 'b': 2, 'c': 3}


こんな感じで要素を追加できます。

dict_2dim["a"]["z"] = 1
dict_2dim
{'a': {'x': 1, 'y': 2, 'z': 1}, 'b': 2, 'c': 3}


あるいは、こんな感じでもいけます。

dict_2dim["a"].update({"z":1})
dict_2dim
{'a': {'x': 1, 'y': 2, 'z': 1}, 'b': 2, 'c': 3}


おわりに

ということで、めっちゃ簡単な備忘録でした。なんでこの内容を記事化しようと思ったのか、経緯について言い訳させてください。今日の昼間に”dict_2dim["a"]["z"]=1" みたいな書き方でエラーを吐かれてしまい、その後updateでやったら上手くいった、という現象に遭遇し、「これは引っかかるな〜」と思って記事を書くに至りました。ところが、記事を書きながらもう一回コード書いてみたところ普通に ”dict_2dim["a"]["z"]=1" でも要素追加できてしまいまして、どうやら白昼夢を見ていたようです。で、まあ途中まで書いちゃったからこのまま公開するか、ってな次第です。言い訳おわり。