Pythonの辞書をマージ(結合)する方法(update() / 演算子)初心者向け完全ガイド
先生と生徒の会話形式で理解しよう
生徒
「Pythonで辞書を2つ結合して1つにまとめたいんですが、どうすればいいですか?」
先生
「辞書をマージ(結合)するには、update()メソッドや、|演算子(パイプ演算子)を使う方法があります。」
生徒
「update()と|はどう違うんですか?」
先生
「では、それぞれの特徴と使い方を順番に説明していきましょう!」
-
1. 辞書をマージ(結合)するとは?
Python(パイソン)の辞書(dictionary)は、「キー」と「値」のペアでデータを管理します。複数の辞書を1つにまとめることをマージ(merge)や結合と呼びます。例えば、ユーザーの基本情報と追加情報を1つにまとめたい場合などに使います。
user_info = {"name": "Taro", "age": 30}
extra_info = {"city": "Tokyo", "job": "Engineer"}
2. update()メソッドで結合する方法
update()メソッドは、辞書に別の辞書の内容を追加または上書きします。
user_info.update(extra_info)
print(user_info)
{'name': 'Taro', 'age': 30, 'city': 'Tokyo', 'job': 'Engineer'}
ポイント:同じキーがある場合は、後から追加した辞書の値で上書きされます。
3. 演算子(|)で結合する方法
Python 3.9以降では、|演算子を使って辞書を結合できます。新しい辞書を返すため、元の辞書は変更されません。
merged = user_info | extra_info
print(merged)
{'name': 'Taro', 'age': 30, 'city': 'Tokyo', 'job': 'Engineer'}
この方法は元の辞書を残したいときに便利です。
4. 演算子(|=)で元の辞書を更新する
|=演算子を使えば、元の辞書を更新しながら結合できます。
user_info |= extra_info
print(user_info)
{'name': 'Taro', 'age': 30, 'city': 'Tokyo', 'job': 'Engineer'}
これはupdate()と同じように元の辞書を直接変更します。
-
5. 実用例:設定ファイルのマージ
例えば、アプリケーションの初期設定とユーザーのカスタム設定をマージして最終設定を作ることができます。
default_settings = {"theme": "light", "language": "ja", "volume": 50}
user_settings = {"theme": "dark", "volume": 80}
final_settings = default_settings | user_settings
print(final_settings)
{'theme': 'dark', 'language': 'ja', 'volume': 80}
ユーザー設定が優先される形でマージされます。
6. update()と演算子の使い分け
update():元の辞書を直接変更するとき|:新しい辞書を作って元の辞書を残すとき|=:演算子の書き方で直接更新したいとき
どちらもシンプルで覚えやすいので、状況に合わせて選びましょう。辞書のマージはデータ処理や設定管理でよく使われる基本テクニックです。