2つのPython辞書があり、この2つの辞書をマージして返す1つの式を書きたいと思っています。 辞書をその場で修正するのではなく、結果を返すのであれば、update()
メソッドは私が必要とするものです。
>>> x = {'a': 1, 'b': 2}
>>> y = {'b': 10, 'c': 11}
>>> z = x.update(y)
>>> print(z)
None
>>> x
{'a': 1, 'b': 10, 'c': 11}
最終的にマージされた dict を x
ではなく z
で取得するにはどうしたらいいですか?
(念のために言っておくと、dict.update()
の最後の一勝負の衝突処理は私が求めているものでもあります)。
あなたの場合は、できることは
z = dict(x.items() + y.items())
これで望みどおり、最後のdictをz
に置き、キーb
の値を2番目の(y
)dict'の値で適切に上書きすることができます。
>>> x = {'a':1, 'b': 2}
>>> y = {'b':10, 'c': 11}
>>> z = dict(x.items() + y.items())
>>> z
{'a': 1, 'c': 11, 'b': 10}
Python 3を使用している場合は、少しだけ複雑になります。 z`を作るには。
>>> z = dict(list(x.items()) + list(y.items()))
>>> z
{'a': 1, 'c': 11, 'b': 10}