1. ホーム
  2. python

[解決済み] Pythonで辞書をマージするには?

2023-01-26 20:07:55

質問

d3 = dict(d1, **d2)

これで辞書がマージされることは理解しました。しかし、それはユニークなのでしょうか?d1とd2のキーが同じで値が違う場合はどうなるのでしょうか? d1とd2をマージしてほしいのですが、キーが重複している場合はd1が優先されます。

どのように解決するのですか?

あなたは .update() メソッドを使うことができます。 d2 が不要になったら

他からのキーと値のペアで辞書を更新します。 既存のキーを上書きする . 戻る None .

e.g:

>>> d1 = {'a': 1, 'b': 2} 
>>> d2 = {'b': 1, 'c': 3}
>>> d2.update(d1)
>>> d2
{'a': 1, 'c': 3, 'b': 2}

更新しました。

もちろん、新しいマージされた辞書を作成するために、最初に辞書をコピーすることができます。これは必要かもしれませんし、必要でないかもしれません。複合オブジェクト (リストやクラス インスタンスのような、他のオブジェクトを含むオブジェクト) が辞書に含まれている場合は、次のようにします。 copy.deepcopy も考慮する必要があります。