Python | 複数の辞書を結合する方法

2023-02-19Python 辞書,Python

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}

Python 辞書,Python

Posted by Yousuke.U