カテゴリ: Python 更新日: 2026/04/24

Pythonの辞書をマージ(結合)する方法(update() / 演算子)初心者向け完全ガイド

Pythonの辞書をマージ(結合)する方法(update() / 演算子)
Pythonの辞書をマージ(結合)する方法(update() / 演算子)

先生と生徒の会話形式で理解しよう

生徒

「Pythonで辞書を2つ結合して1つにまとめたいんですが、どうすればいいですか?」

先生

「辞書をマージ(結合)するには、update()メソッドや、|演算子(パイプ演算子)を使う方法があります。」

生徒

update()|はどう違うんですか?」

先生

「では、それぞれの特徴と使い方を順番に説明していきましょう!」

1. 辞書をマージ(結合)するとは?

1. 辞書をマージ(結合)するとは?
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()メソッドで既存の辞書を更新・結合する方法

2. update()メソッドで既存の辞書を更新・結合する方法
2. update()メソッドで既存の辞書を更新・結合する方法

Pythonで「すでにある辞書に、別の辞書のデータをまとめて入れたい」という時に最もよく使われるのが、このupdate()メソッドです。 新しく結合用の辞書を作るのではなく、元の辞書を直接書き換えて(更新して)合体させるのが特徴です。

初心者向けのイメージ
「名簿(辞書A)」に「追加の連絡先リスト(辞書B)」を上書き保存するような感覚です。


# 元のユーザー情報
user_info = {'name': 'Taro', 'age': 30}

# 追加したいデータ
extra_info = {'city': 'Tokyo', 'job': 'Engineer'}

# updateメソッドで結合!
user_info.update(extra_info)

print(user_info)

{'name': 'Taro', 'age': 30, 'city': 'Tokyo', 'job': 'Engineer'}

注意点:キーが重複した場合の挙動

もし結合する両方の辞書に「同じ名前のキー」があった場合、後から追加した方の値が優先され、元の値は消えてしまいます。 プログラミングの世界ではこれを「上書き」と呼びます。


# 'age'がどちらにも存在するケース
user = {'name': 'Taro', 'age': 30}
new_data = {'age': 31, 'city': 'Osaka'}

user.update(new_data)
# ageが30から31に書き換わります
print(user)

ポイント
1. 元の辞書の中身が変わる(破壊的処理といいます)。
2. 同じキーは新しいデータで塗り替えられる。
この2点を押さえておけば、データの更新作業が非常にスムーズになります。

3. 演算子(|)で結合する方法(Python 3.9以降の新機能)

3. 演算子(|)で結合する方法(Python 3.9以降の新機能)
3. 演算子(|)で結合する方法(Python 3.9以降の新機能)

Python 3.9というバージョンから、「|(パイプ)」という記号を使って、2つの辞書をより直感的にガッチャンコ(結合)できるようになりました。これは「マージ演算子」と呼ばれ、複雑なコードを書かずにシンプルに辞書をまとめられるのが最大の特徴です。

初心者の方にとって嬉しいポイントは、「元のデータが壊れない」という点です。元の辞書(user_infoやextra_info)はそのままの状態で、新しく合体させた辞書を「別物」として作成します。そのため、「元のデータを後でまた使いたい」という場面で非常に安全にプログラムを組むことができます。


# 1つ目の辞書
user_info = {'name': 'Taro', 'age': 30}
# 2つ目の辞書
extra_info = {'city': 'Tokyo', 'job': 'Engineer'}

# 「|」演算子で2つを合体させて、新しい変数「merged」に入れる
merged = user_info | extra_info

# 結果を確認
print(merged)
# 元のデータが変わっていないことも確認
print(user_info)

{'name': 'Taro', 'age': 30, 'city': 'Tokyo', 'job': 'Engineer'}
{'name': 'Taro', 'age': 30}

このように、mergedという新しい箱に合体結果が入るため、データ管理が非常に楽になります。「どっちの辞書が優先されるの?」と疑問に思うかもしれませんが、後ろ(右側)にある辞書に同じキーがあれば、その値で上書きされるというルールだけ覚えておけば完璧です。

4. 演算子(|=)で元の辞書を更新する

4. 演算子(|=)で元の辞書を更新する
4. 演算子(|=)で元の辞書を更新する

|=演算子を使えば、元の辞書を更新しながら結合できます。


user_info |= extra_info
print(user_info)

{'name': 'Taro', 'age': 30, 'city': 'Tokyo', 'job': 'Engineer'}

これはupdate()と同じように元の辞書を直接変更します。

5. 実用例:設定ファイルのマージ

5. 実用例:設定ファイルのマージ
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()と演算子の使い分け

6. update()と演算子の使い分け
6. update()と演算子の使い分け
  • update():元の辞書を直接変更するとき
  • |:新しい辞書を作って元の辞書を残すとき
  • |=:演算子の書き方で直接更新したいとき

どちらもシンプルで覚えやすいので、状況に合わせて選びましょう。辞書のマージはデータ処理や設定管理でよく使われる基本テクニックです。

コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

関連記事:
カテゴリの一覧へ
新着記事
New1
PHP
PHPでセッションを使ってフォーム入力を保持する方法を解説!初心者向けステップバイステップ
New2
PHP
PHP の文字列の基本操作(連結・切り出し・長さ)の使い方
New3
PHP
PHPのメール送信でSPF・DKIM認証設定を完全解説!初心者でもわかるメール認証の基本
New4
Python
PythonでAPIのパフォーマンスを向上させる方法!キャッシュ活用を初心者向けに完全解説
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonで文字列が数値か判定する方法!isdigit()・isnumeric()の違い
No.2
Java&Spring記事人気No2
PHP
PHP のフォームデータの受け取り($_POST, $_GET)を完全解説!初心者向けガイド
No.3
Java&Spring記事人気No3
Python
Pythonで辞書のネスト構造(入れ子辞書)を扱う方法 初心者向け完全ガイド
No.4
Java&Spring記事人気No4
Python
Pythonのコンストラクタ(__init__)の使い方!初心者でもわかるオブジェクトの初期化
No.5
Java&Spring記事人気No5
PHP
PHPのHTMLメールの作成方法を完全ガイド!初心者でもわかるメール送信の基本
No.6
Java&Spring記事人気No6
Python
Pythonで2次元リストを作成・操作する方法(リストのリスト)
No.7
Java&Spring記事人気No7
Python
PythonでExcelファイル(.xlsx)を操作する方法を徹底解説!初心者でもできるopenpyxl・pandasの使い方
No.8
Java&Spring記事人気No8
Python
Pythonの例外を発生させる方法を完全解説!raise文の使い方を初心者向けにやさしく説明