Pythonで辞書を結合する方法を解説

Python

本記事では、Pythonで辞書を結合する方法を解説します。辞書を結合する方法はいくつかあり、その中でも主な方法を説明します。

update

update()メソッドは、Pythonの辞書に組み込まれたメソッドで、ある辞書の内容を別の辞書に追加することができます。元の辞書が更新されるため、破壊的操作になります。

構文

dict1.update(dict2)

コード例

以下のコードではupdate()メソッドを使って2つの辞書を結合しています。dict1にdict2の内容が追加されます。

dict1 = {"name": "太郎", "age": 30}
dict2 = {"city": "東京", "job": "エンジニア"}

dict1.update(dict2)
print(dict1)
# 出力: {'name': '太郎', 'age': 30, 'city': '東京', 'job': 'エンジニア'}

# キーが重複する場合は上書きされる
dict3 = {"name": "太郎", "age": 30}
dict4 = {"age": 25, "hobby": "読書"}

dict3.update(dict4)
print(dict3)
# 出力: {'name': '太郎', 'age': 25, 'hobby': '読書'}

展開演算子(**)

展開演算子**)を使うと、辞書の内容を別の辞書リテラル内に展開できます。新しい辞書を作成するため、元の辞書は変更されません。

構文

merged_dict = {**dict1, **dict2}

コード例

以下のコードでは展開演算子を使って複数の辞書を結合しています。新しい辞書が作成されます。

dict1 = {"name": "太郎", "age": 30}
dict2 = {"city": "東京", "job": "エンジニア"}

merged_dict = {**dict1, **dict2}
print(merged_dict)
# 出力: {'name': '太郎', 'age': 30, 'city': '東京', 'job': 'エンジニア'}

# キーが重複する場合は後の辞書の値が優先される
dict3 = {"name": "太郎", "age": 30}
dict4 = {"age": 25, "hobby": "読書"}

merged_dict = {**dict3, **dict4}
print(merged_dict)
# 出力: {'name': '太郎', 'age': 25, 'hobby': '読書'}

# 3つ以上の辞書も結合可能
dict5 = {"status": "学生"}
merged_dict = {**dict3, **dict4, **dict5}
print(merged_dict)
# 出力: {'name': '太郎', 'age': 25, 'hobby': '読書', 'status': '学生'}

|演算子(Python3.9以降)

Python 3.9から導入された|演算子(マージ演算子)を使って辞書を結合することができます。新しい辞書を作成するため、元の辞書は変更されません。

構文

merged_dict = dict1 | dict2

コード例

以下のコードでは|演算子を使って辞書を結合しています。簡潔で読みやすい構文が特徴です。

# Python 3.9以降で実行可能
dict1 = {"name": "太郎", "age": 30}
dict2 = {"city": "東京", "job": "エンジニア"}

merged_dict = dict1 | dict2
print(merged_dict)
# 出力: {'name': '太郎', 'age': 30, 'city': '東京', 'job': 'エンジニア'}

# キーが重複する場合は右側の辞書の値が優先される
dict3 = {"name": "太郎", "age": 30}
dict4 = {"age": 25, "hobby": "読書"}

merged_dict = dict3 | dict4
print(merged_dict)
# 出力: {'name': '太郎', 'age': 25, 'hobby': '読書'}

# |=演算子を使うと更新も可能
dict5 = {"name": "花子", "status": "学生"}
dict5 |= dict4
print(dict5)
# 出力: {'name': '花子', 'status': '学生', 'age': 25, 'hobby': '読書'}

まとめ

Pythonで辞書を結合する方法はいくつかあります:

  1. update()メソッド – 既存の辞書を更新する破壊的操作
  2. 展開演算子**) – 新しい辞書を作成する非破壊的操作
  3. |演算子 – Python 3.9以降で使用可能な、より簡潔な非破壊的操作

用途や状況に合わせて最適な方法を選ぶとよいでしょう。新しいバージョンのPythonを使用している場合は、読みやすさの観点から|演算子がおすすめです。

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