0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Python 辞書のマージ方法まとめ

Last updated at Posted at 2024-12-09

2つの辞書をマージする方法についてまとめ

アンパック

python 3.5以降
アンパックにより、辞書のすべてのキー、バリューが展開される。

dict1 = {"name": "Grace", "age": 33}
dict2 = {"city": "Kobe", "country": "Japan"}
dict_merge = dict(**dict1, **dict2)

update

updateメソッドは破壊的に更新

元の辞書にキーと値を追加する。

# dict1を更新
dict1.update(dict2)

print(dict1)

キーの競合

キーが競合する場合は、追加した値で更新する。

dict1 = {"name": "Alice"}
dict2 = {"city": "Tokyo"}
dict1.update(dict2)
print(dict1)  # {'name': 'Alice', 'city': 'Tokyo'}

元の辞書を変更せずにマージ

copy() を使用する

dict1 = {"name": "Alice", "age": 25}
dict2 = {"city": "Tokyo", "age": 30}

# dict1を変更せずにマージ
merged_dict = dict1.copy()
merged_dict.update(dict2)

print("dict1:", dict1)          # {'name': 'Alice', 'age': 25}
print("merged_dict:", merged_dict)  # {'name': 'Alice', 'age': 30, 'city': 'Tokyo'}

| 演算子

| 演算子は新しい辞書を返す。元の辞書は変更しない。
イミュータブルな操作ともいう。
python 3.9以降

dict1 = {"name": "Grace", "age": 33}
dict2 = {"city": "Kobe", "country": "Japan"}
dict_merge = dict1 | dict2
print(dict_merge)

キーの競合

同じキーが両方の辞書に存在する場合、右側の辞書 (dict2) の値が優先されます。

dict1 = {"key": "value1"}
dict2 = {"key": "value2"}
dict_merge = dict1 | dict2
print(dict_merge)  # {'key': 'value2'}

まとめ

方法 サポートバージョン 特徴 破壊的操作 重複キー時の挙動 メモリ効率性 サンプルコード
update() 2.x 以降 元の辞書を直接更新する方法。 はい 右側の辞書の値で上書きされる 高い dict1.update(dict2)
{**dict1, **dict2} 3.5 以降 新しい辞書を作成するため、元の辞書は変更されない。 いいえ 右側の辞書の値で上書きされる 中程度 merged_dict = {**dict1, **dict2}
dict(**dict1, **dict2) 3.5 以降 {**dict1, **dict2} の代替。dict() コンストラクタを使って明示的に辞書を作成する方法。 いいえ 右側の辞書の値で上書きされる 中程度 merged_dict = dict(**dict1, **dict2)
| 演算子 3.9 以降 シンプルで直感的な方法。新しい辞書を作成し、元の辞書は変更されない。 いいえ 右側の辞書の値で上書きされる 高い
|= 演算子 3.9 以降 元の辞書を直接更新する破壊的操作。 はい 右側の辞書の値で上書きされる 高い
copy() + update() 2.x 以降 元の辞書を変更せず、新しい辞書を作成する方法。 いいえ 右側の辞書の値で上書きされる 低い merged_dict = dict1.copy(); merged_dict.update(dict2)
0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?