二つの辞書の結合を議論して三つの方法があることがわかった。
今回はたまたま二つの辞書でキーが同じものがあったときの振る舞いを調べる:
例題
>>> d1=dict()
>>> d1['one'] = 'イチ'
>>> d1['two'] = 'ニ'
>>> d2=dict()
>>> d2['one'] = 'ヒトツ'
>>> d2['three'] = 'サン'
>>> d=dict(**d1, **d2)
Traceback (most recent call last):
File "<pyshell#7>", line 1, in
d=dict(**d1, **d2)
TypeError: type object got multiple values for keyword argument 'one'
>>> d=dict(list(d1.items()) + list(d2.items()))
>>> print(d)
{'one': 'ヒトツ', 'two': 'ニ', 'three': 'サン'}
>>> d1.update(d2)
>>> print(d1)
{'one': 'ヒトツ', 'two': 'ニ', 'three': 'サン'}
>>>
- 形式d=dict(**d1, **d2)ではエラーになる。
形式d=dict(list(d1.items()) + list(d2.items()))では上書きされる。
- 形式
d1.update(d2)では予想したしたように上書きされる。