Pythonの話題:辞書の結合(付録)

二つの辞書の結合を議論して三つの方法があることがわかった。

今回はたまたま二つの辞書でキーが同じものがあったときの振る舞いを調べる:
例題


>>> 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)では予想したしたように上書きされる。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です