Python

【Python】辞書の要素を変更・追加する方法

この記事では、Python で辞書の要素を変更・追加する方法を解説します。

辞書(マップ)の使い方【dict】

要素の変更・追加: 代入

[] を使って key を指定し value を代入することで要素を変更・追加できます。

辞書[key] = value

指定した key が既に辞書内に存在する場合は、その key の値を代入した value に変更し、存在しない場合は key と value を新しい要素として追加できます。

サンプル

試しに要素の変更と追加をしてみます。

data = {'name': '田中太郎', 'age': 20}

# data内に存在する key を指定して代入
data['name'] = '山田花子'
print(data)

# data内に存在しない key を指定して代入
data['gender'] = '女'
print(data)

実行結果

{'name': '山田花子', 'age': 20}
{'name': '山田花子', 'age': 20, 'gender': '女'}

複数の要素の変更・追加: updateメソッド

update()メソッド の引数に他の辞書を指定することで要素を変更・追加できます。

辞書1.update(辞書2)

引数に指定された辞書の key が 元の辞書に存在する場合に要素は更新され、存在しない場合は要素が追加されます。

サンプル

代入のサンプルと同じ処理を update()メソッド を使って実行しています。

data1 = {'name': '田中太郎', 'age': 20}
data2 = {'name': '山田花子', 'gender': '女'}

data1.update(data2)
print(data1)

実行結果

{'name': '山田花子', 'age': 20, 'gender': '女'}

name は data1 に既に存在したので data2 の値で更新され、gender は data1 に存在しなかったので新しい要素として追加されました。

2つの辞書を1つにする方法【マージ】

デフォルト値の追加: setdefaultメソッド

setdefault()メソッド は 任意の key から value を取得するためのメソッドですが、指定した key が辞書内に存在しない場合、その key と default を要素として追加し、default を返します。

辞書.setdefault(key[, default])

サンプル

試しに要素を追加してみます。

data = {'name': '田中太郎', 'age': 20}

# key が存在する場合
data.setdefault('name', '山田花子')
print(data)

# key が存在しない場合
data.setdefault('gender', '女')
print(data)

実行結果

{'name': '田中太郎', 'age': 20}
{'name': '田中太郎', 'age': 20, 'gender': '女'}