Python | 複数の辞書を結合する方法
Pythonで複数の辞書を結合する方法とサンプルコードを紹介しています。
確認環境
Windows11 ローカル
Python python-3.11.1
Pythonで複数の辞書データを結合するにはデータを追加するメソッドupdate()
を利用することが可能です。update()
メソッドは第一引数に追加する辞書を指定します。
以下のコード例では、「data1」という辞書に「data2」の辞書データを追加しています。
data1 = {'apple': 120, 'banana': 50, 'orange': 120, }
data2 = {'pine': 230, 'peach': 40}
data1.update(data2)
print(data1)
# {'apple': 120, 'banana': 50, 'orange': 120, 'pine': 230, 'peach': 40}
重複するデータがある場合は追加したデータのものに上書きされます。
以下の例では「apple」が重複していますので、値は「data2」の40に書き換わります。
data1 = {'apple': 120, 'banana': 50, 'orange': 120, }
data2 = {'pine': 230, 'apple': 40}
data1.update(data2)
print(data1)
# {'apple': 40, 'banana': 50, 'orange': 120, 'pine': 230}
2つ以上の辞書データを同時に追加する場合は「**」を付ける必要があります。
しかし、この方法では3回以上同じキー名が存在するとエラーが発生してしまいます。
data1 = {'apple': 120, 'banana': 50, 'orange': 120, }
data2 = {'pine': 230, 'apple': 40}
data3 = {'peach': 150}
data1.update(**data2, **data3)
print(data1)
|演算子で辞書を結合する(Python3.9以降)
Pythonのバージョンが3.9以降の場合、|
演算子を使って複数の辞書を結合する事が可能となっています。
update()
メソッドは第一引数に追加する辞書を指定します。
以下のコード例では、「data1」という辞書に「data2」の辞書データを追加しています。|
演算子は文字列型でいうところの+
演算子で、以下のように記述する事が可能です。
重複するキー名は左側から順に上書きされていきますので、右側にある辞書のデータが結果として残ります。
data1 = {'apple': 120, 'banana': 50, 'orange': 120, }
data2 = {'pine': 230, 'apple': 40}
data3 = {'apple': 150, 'peach': 1250}
data1 = data1 | data2 | data3
print(data1)
# {'apple': 150, 'banana': 50, 'orange': 120, 'pine': 230, 'peach': 1250}
上記のコードは|=
演算子を使う事で以下のように記述する事も可能です。
結果は同じものとなります。
data1 = {'apple': 120, 'banana': 50, 'orange': 120, }
data2 = {'pine': 230, 'apple': 40}
data3 = {'apple': 150, 'peach': 1250}
data1 |= data2 | data3
print(data1)
# {'apple': 150, 'banana': 50, 'orange': 120, 'pine': 230, 'peach': 1250}
ディスカッション
コメント一覧
まだ、コメントがありません