pythonの辞書(dict)の要素の追加方法、辞書同士の結合方法について、サンプルコードを交えながら紹介します。
辞書に要素を追加したり、辞書同士を結合する場合に、キーが重複した場合の処置についても解説しています。
本記事では、下記の内容を紹介しています。
この記事で分かること
■辞書への要素の追加方法
- 辞書のキー(key)を指定して値(value)を追加
- updateメソッドで要素を追加
- setdefaultメソッドで要素を追加
- リストとfor文で、辞書の要素を追加
■辞書の結合方法
- updateメソッドで辞書を結合
- for文で辞書を結合
スポンサーリンク
辞書への要素(データ)の追加方法
はじめに、辞書への要素の追加方法について説明します。
要素を追加する方法はいくつかあるので、それぞれの方法についてサンプルコードを交えながら順番に紹介します。
辞書のキー(key)を指定して値(value)を追加【キーが重複したら上書き】
もっとも基本的な、要素の追加方法です。
追加する辞書のキーを指定して、値を入力します。
この方法の場合、追加先の辞書にすでにキーが存在する場合は、値は上書きされます。
書き方
辞書[キー] = 値
以下、サンプルコードです。
キーが重複する場合は、値が上書きされます。
### キーを指定して値を追加
fruits_dict = {'Apple':100, 'Banana':200, 'Orange':100}
print(fruits_dict)
# {'Apple': 100, 'Banana': 200, 'Orange': 100}
fruits_dict['Grape'] = 500
print(fruits_dict)
# {'Apple': 100, 'Banana': 200, 'Orange': 100, 'Grape': 500}
### キーが重複した場合は上書き
fruits_dict['Apple'] = 150
print(fruits_dict)
# {'Apple': 150, 'Banana': 200, 'Orange': 100, 'Grape': 500}
updateメソッド【キーが重複したら上書き】
辞書のupdateメソッドを用いても要素を追加できます。
updateメソッドの場合も前述の例と同様、キーが存在する場合は値が上書きされます。
書き方
辞書.update(キー=値)
以下、サンプルコードです。
### updateメソッドで要素を追加
fruits_dict = {'Apple':100, 'Banana':200, 'Orange':100}
print(fruits_dict)
# {'Apple': 100, 'Banana': 200, 'Orange': 100}
fruits_dict.update(Grape = 500, Peach = 200)
print(fruits_dict)
# {'Apple': 100, 'Banana': 200, 'Orange': 100, 'Grape': 500, 'Peach': 200}
### キーが重複した場合は上書き
fruits_dict.update(Apple = 150, Peach = 200)
print(fruits_dict)
# {'Apple': 150, 'Banana': 200, 'Orange': 100, 'Grape': 500, 'Peach': 200}
スポンサーリンク
setdefaultメソッド 【キーが重複したら上書きしない】
辞書のキーが存在した場合に、値を上書きしたくない場合は、setdefaultメソッドを使います。
書き方
辞書.setdefault(キー, 値)
以下、サンプルコードです。
### setdefaultメソッドで要素を追加
fruits_dict = {'Apple':100, 'Banana':200, 'Orange':100}
print(fruits_dict)
# {'Apple': 100, 'Banana': 200, 'Orange': 100}
fruits_dict.setdefault('Grape', 500)
print(fruits_dict)
# {'Apple': 100, 'Banana': 200, 'Orange': 100, 'Grape': 500}
### キーが重複した場合は上書きしない
fruits_dict.setdefault('Apple', 150)
print(fruits_dict)
# {'Apple': 100, 'Banana': 200, 'Orange': 100, 'Grape': 500}
辞書の要素を、for文でリストから追加【キーが重複したら上書き】
次に、リストから、辞書のキーと値を追加する方法を紹介します。
サンプルコードでは、for文を使用しています。
for文を使用することで、汎用性が高くなり様々な要素の追加パターンに対応できるようになります。
また、サンプルコードでは、zip関数を使用しています。
zip関数を用いることで、for文の中で複数のリストの要素を同時に使用できるようになります。
以下、サンプルコードです。
要素を追加する部分には、前述のキーを指定して値を入力する方法を用いています。
### リストから、辞書のキーと値を追加【キー重複で上書き】
fruits_dict = {'Apple':100, 'Banana':200, 'Orange':100}
print(fruits_dict)
# {'Apple': 100, 'Banana': 200, 'Orange': 100}
fruits_list = ['Apple', 'Peach', 'Lemon']
prices_list = [150, 200, 150]
for fruit, price in zip(fruits_list, prices_list):
fruits_dict[fruit] = price
print(fruits_dict)
# {'Apple': 150, 'Banana': 200, 'Orange': 100, 'Peach': 200, 'Lemon': 150}
'Apple'のキーが重複していますが、値が上書きされています。
なお、zip関数については、下記の記事で紹介しています。
辞書の要素を、for文でリストから追加【キーが重複したら上書きしない】
先ほどの例について、キーが重複した場合に、値が上書きされないサンプルコードです。
辞書の要素を追加する部分を、setdefaultメソッドに書き換えています。
### リストから、辞書のキーと値を追加【キー重複で上書きしない】
fruits_dict = {'Apple':100, 'Banana':200, 'Orange':100}
print(fruits_dict)
# {'Apple': 100, 'Banana': 200, 'Orange': 100}
fruits_list = ['Apple', 'Peach', 'Lemon']
prices_list = [150, 200, 150]
for fruit, price in zip(fruits_list, prices_list):
fruits_dict.setdefault(fruit, price)
print(fruits_dict)
# {'Apple': 100, 'Banana': 200, 'Orange': 100, 'Peach': 200, 'Lemon': 150}
'Apple'のキーが重複していますが、値が上書きされていません。
スポンサーリンク
辞書(dict)の結合(連結)
つぎに、辞書同士の連結方法について、紹介します。
辞書の連結方法もいくつか方法がありますので、それぞれについてサンプルコードを交えながら紹介します。
updateメソッドで辞書を結合【キーが重複したら上書き】
updateメソッドを用いて辞書を同士を結合できます。
なお、辞書のキーが重複した場合は、追加する辞書の値で上書きされます。
書き方
追加先の辞書.update(追加する辞書)
以下、サンプルコードです。
### updateメソッドで辞書を結合
fruits_dict1 = {'Apple':100, 'Banana':200, 'Orange':100}
fruits_dict2 = {'Apple':150, 'Peach':200, 'Lemon':150}
fruits_dict1.update(fruits_dict2)
print(fruits_dict1)
# {'Apple': 150, 'Banana': 200, 'Orange': 100, 'Peach': 200, 'Lemon': 150}
'Apple'のキーが重複していますが、値は上書きされています。
for文で辞書を結合【キーが重複したら上書きしない】
つぎに、結合する辞書のキーが重複した場合に、値を上書きしないサンプルコードを紹介します。
for文とif文でキーが重複しないか確認し、重複しない場合に、要素を追加しています。
### for文で辞書のキーの重複チェックをして、辞書を結合
fruits_dict1 = {'Apple':100, 'Banana':200, 'Orange':100}
fruits_dict2 = {'Apple':150, 'Peach':200, 'Lemon':150}
fruits_dict_merged = fruits_dict1.copy()
for fruit, price in fruits_dict2.items() :
if not fruit in fruits_dict_merged :
fruits_dict_merged[fruit] = price
else :
pass
print(fruits_dict_merged)
# {'Apple': 100, 'Banana': 200, 'Orange': 100, 'Peach': 200, 'Lemon': 150}
> for fruit, price in fruits_dict2.items( ) :
辞書のitemsメソッドを用いて、辞書の全てのキーと値を取得し、fruitと、priceに渡しています。
> if not fruit in fruits_dict_merged :
追加先の辞書のキーに、追加する辞書のキーが含まれないか確認しています。
キーが重複しない場合に、要素として追加しています。
なお、辞書のitemsメソッドについては、下記の記事で紹介しています。
スポンサーリンク
まとめ
pythonの辞書の要素の追加方法、辞書同士の結合方法について紹介しました。
辞書を扱ううえで基本的な内容になるので、使い方は覚えておくようにしましょう。
スポンサーリンク