Pythonの辞書をマージ(結合)する方法(update() / 演算子)初心者向け完全ガイド
生徒
「Pythonで辞書を2つ結合して1つにまとめたいんですが、どうすればいいですか?」
先生
「辞書をマージ(結合)するには、update()メソッドや、|演算子(パイプ演算子)を使う方法があります。」
生徒
「update()と|はどう違うんですか?」
先生
「では、それぞれの特徴と使い方を順番に説明していきましょう!」
1. 辞書をマージ(結合)するとは?
Python(パイソン)の辞書(dictionary)は、「名前:太郎」「年齢:30歳」のように、「キー(Key)」と「値(Value)」をペアにして管理する非常に便利なデータ構造です。
プログラミングをしていると、別々に作った複数のデータを1つにまとめたい場面がよくあります。この操作をマージ(merge)、または結合と呼びます。例えば、名簿アプリで「基本プロフィール」と「連絡先」という2つの辞書をガッチャンコして、1つの「完全なユーザー情報」を作るようなイメージです。
「苗字が書かれたカード」と「名前が書かれたカード」を、1つのクリアファイルにまとめ直して管理しやすくする作業に似ています。
まずは、結合する前の2つの辞書を用意するコードを見てみましょう。
# 1つ目の辞書(ユーザーの基本情報)
user_info = {"name": "Taro", "age": 30}
# 2つ目の辞書(追加の住所や仕事情報)
extra_info = {"city": "Tokyo", "job": "Engineer"}
このように、バラバラの状態では扱いにくいデータも、Pythonに用意されている専用の方法を使うことで、重複を避けながら賢く1つに統合することが可能です。次章からは、具体的な結合の手順を初心者の方にも分かりやすく解説していきます。
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():元の辞書を直接変更するとき|:新しい辞書を作って元の辞書を残すとき|=:演算子の書き方で直接更新したいとき
どちらもシンプルで覚えやすいので、状況に合わせて選びましょう。辞書のマージはデータ処理や設定管理でよく使われる基本テクニックです。