[Python]複数の辞書(Dictionary)を結合するには?

python

どうも、ちょげ(@chogetarou)です。

複数の辞書(Dictionary)を結合する方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

複数の辞書(Dictionary)を結合する方法は、3つあります。

update()メソッド

1つ目は、update()メソッドを使う方法です

まず、辞書からupdate()メソッドを呼び出します。

そして、引数に結合する辞書をカンマ区切りで指定します。

引数に指定する辞書には、先頭に「**」を付けます。

myDict1.update(**myDict2, **myDict3, ・・・)

上記のupdate()メソッドは、引数に指定した複数の辞書を、メソッドを呼び出した辞書に結合します。

使用例

myDict1 = {"one":1, "two":2, "three":3}
myDict2 = {"four":4, "five":5, "six":6}
myDict3 = {"seven":7, "eight":8, "nine":9}

myDict1.update(**myDict2, **myDict3)

print(myDict1)
#{'one': 1, 'two': 2, 'three': 3, 'four': 4, 'five': 5, 'six': 6, 'seven': 7, 'eight': 8, 'nine': 9}

アンパック

2つ目は、アンパックを使う方法です。

まず、{}で新しい辞書を作成します。

そして、{}内に結合する複数の辞書をカンマ区切りで指定します。

指定する際に、全ての辞書名の先頭に「**」を付けます。

#{}内に指定した辞書を全て結合
newDict = { **myDict1, **myDict2, **myDict3, ・・・}

上記の{}は、{}内に記述した複数の辞書を全て結合した辞書(Dictionary)を生成します。

{}の代わりにdict()を使うことができます。

newDict = dict(**myDict1, **myDict2, **myDict3,・・・)

使用例

myDict1 = {"one":1, "two":2, "three":3}
myDict2 = {"four":4, "five":5, "six":6}
myDict3 = {"seven":7, "eight":8, "nine":9}

newDict = { **myDict1, **myDict2, **myDict3}

print(newDict)
#{'one': 1, 'two': 2, 'three': 3, 'four': 4, 'five': 5, 'six': 6, 'seven': 7, 'eight': 8, 'nine': 9}

演算子

3つ目は、演算子「|」を使う方法です。

具体的には、結合する辞書を「|」区切りで記述します。

#myDict1とmyDict2とmyDict3・・・を結合
newDict = myDict1 | myDict2 | myDict3 ・・・

上記のコードは、カンマ区切りで記述された複数の辞書を結合した新しい辞書を生成します。

使用例

myDict1 = {"one":1, "two":2, "three":3}
myDict2 = {"four":4, "five":5, "six":6}
myDict3 = {"seven":7, "eight":8, "nine":9}

newDict = myDict1 | myDict2 | myDict3

print(newDict)
#{'one': 1, 'two': 2, 'three': 3, 'four': 4, 'five': 5, 'six': 6, 'seven': 7, 'eight': 8, 'nine': 9}

まとめ

複数の辞書(Dictionary)を結合する方法は、次の3つです。

  • update()メソッドを使う方法
    myDict1.update(**myDict2, **myDict3, ・・・)
  • アンパックを使う方法
    newDict = { **myDict1, **myDict2, **myDict3, ・・・}
  • 演算子「|」を使う方法
    newDict = myDict1 | myDict2 | myDict3 ・・・

コメント

タイトルとURLをコピーしました