Pythonで辞書に要素を追加、辞書同士を連結(結合)

Pythonで辞書(dict型オブジェクト)に新たな要素を追加したり、既存の要素の値を更新したりする方法を説明します。

キーを指定して辞書に要素を追加・更新 辞書同士を連結(結合)、複数の要素を追加・更新: update()メソッド

キーkeyの存在を確認する方法やキーの名前を変更する方法については

キーを指定して辞書に要素を追加・更新

以下の書き方で辞書の要素を追加・更新できます。 辞書オブジェクト[キー] = 値

存在しないキーを指定すると新たな要素が追加、存在するキーを指定すると既存の値が更新(上書き)されます。

d = {'k1': 1, 'k2': 2}

d['k3'] = 3
print(d)
# {'k1': 1, 'k2': 2, 'k3': 3}

d['k1'] = 100
print(d)
# {'k1': 100, 'k2': 2, 'k3': 3}

存在するキーの値を更新したくない場合はsetdefault()メソッドを使います。

辞書同士を連結(結合)、複数の要素を追加・更新: updateメソッド

二つの辞書オブジェクトを連結(結合)したり、複数の要素を一気に追加するには辞書オブジェクトのメソッドupdate()を使います。

  1. 組み込み型 dict.updaet() — Python 3.6.5 ドキュメント

辞書同士の連結(結合)

update()メソッドの引数に別の辞書オブジェクトを指定すると、その辞書オブジェクトの要素がすべて追加されます。既存のキーと重複する場合は引数に指定した辞書の値で上書きされます。
d1 = {'k1': 1, 'k2': 2}
d2 = {'k1': 100, 'k3': 3, 'k4': 4}

d1.update(d2)
print(d1)
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}

複数の要素を追加・更新 update()メソッドにキーワード引数key=valueを指定すると、キーkeyと値valueが追加されます。既存のキーと重複する場合は引数に指定した値で上書きされます。

d = {'k1': 1, 'k2': 2}

d.update(k1=100, k3=3, k4=4)
print(d)
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}

update()メソッドには(key, value)のリストを引数として指定することもできます。既存のキーと重複する場合は引数に指定した値で上書きされます。

d = {'k1': 1, 'k2': 2}

d.update([('k1', 100), ('k3', 3), ('k4', 4)])
print(d)
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}

zip()関数を組み合わせると、キーのリストと値のリストから要素を追加できます。

d = {'k1': 1, 'k2': 2}

keys = ['k1', 'k3', 'k4']
values = [100, 3, 4]

d.update(zip(keys, values))
print(d)
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}
Last Updated: 6/26/2019, 10:34:03 PM