Pythonの辞書を結合(マージ)する3つの方法!

Python Python

Pythonの辞書を結合(マージ)する方法について書いています。
2つの辞書を結合するには、下記の方法を使うことができます。

載せているコードはPythonのバージョン3.11.0で動作を確認しています。

Pythonの辞書を結合するには?

Pythonの辞書を結合する方法を書いています。

updateメソッドを使う

updateメソッドを使うことで、updateメソッドを呼び出した辞書に辞書を追加することができます。
例えば、下記のように使うことができます。

fruit1 = {'apple': 100, 'banana': 120, 'grape': 300}
fruit2 = {'lemon': 130, 'orange': 150, 'banana': 230}

fruit1.update(fruit2)

最初にfruit1変数に対して、3つのキーと値で辞書オブジェクトを作っています。
次の行でもfruit2変数に対して、同じように辞書オブジェクトを作りました。

fruit1変数からupdateメソッドを呼び出して、fruit2変数を渡しました。
これでfruit1にfruit2が追加されます。

このように結合するのと同じように使うことができます。

fruit1変数が上書きされて、内容が変わるので気を付けましょう。
fruit1を出力すると、下記のように結合されたことが確認できました。

print(fruit1) # {'apple': 100, 'banana': 230, 'grape': 300, 'lemon': 130, 'orange': 150}

bananaのキーが重複していましたが、後の値が優先されてひとつになっています。

「|」演算子を使う

|」を使うことでも結合することができます。
例えば、下記のように使うことができます。

fruit1 = {'apple': 100, 'banana': 120, 'grape': 300}
fruit2 = {'lemon': 130, 'orange': 150, 'banana': 230}

fruit3 = fruit1 | fruit2

先ほどと同じ内容の辞書オブジェクトfruit1fruit2を用意しました。
次の行で「|」を使って、ふたつの辞書を結合して結果を返しています。

返ってきた結合された辞書をfruit3変数で受け取りました。
実行すると、下記のように結合されたことが確認できました。

print(fruit3) # {'apple': 100, 'banana': 230, 'grape': 300, 'lemon': 130, 'orange': 150}

同じキーは後の値が優先されました。
|」を使ったときには、fruit1変数は更新されないので、辞書の内容はそのまま残ります。

「**」演算子を使う

**」を使うことでも結合することができます。
例えば、下記のように使うことができます。

fruit1 = {'apple': 100, 'banana': 120, 'grape': 300}
fruit2 = {'lemon': 130, 'orange': 150, 'banana': 230}

fruit3 = {**fruit1, **fruit2}

先ほどと同じ内容の辞書オブジェクトfruit1fruit2を用意しました。
次の行で「**」を使っています。

辞書の前に「**」を使うことで、辞書の内容を展開することができます。
それぞれの辞書の中身を展開して、ひとつの辞書を作っているイメージです。

作った内容をfruit3変数で受け取りました。
print関数で出力すると、下記のように表示されました。

print(fruit3) # {'apple': 100, 'banana': 230, 'grape': 300, 'lemon': 130, 'orange': 150}

このように、それぞれの変数の内容を「**」で展開することでも結合できました。

Pythonの辞書を結合する方法まとめ

今回はPythonの辞書に値を追加する方法について書きました。
記事の内容をまとめると、下記のようになります。

・updateメソッドを使うことで、片方の変数に追加して結合したように振るまえた。
・「`|`」を使うことで、2つの辞書を結合できた。
・「`**`」を使うことで、辞書の内容を展開して結合できた。

コメント

タイトルとURLをコピーしました