【Python】dictionary(辞書)に要素を追加する方法

※本サイトにはプロモーション・広告が含まれています。

(最終更新日:2023年7月)

✔以下のような方を対象にした記事です

「Pythonの辞書(dict)に要素を追加する方法が知りたい」

「Pythonで辞書に新たなキーと値を追加する手順を学びたい」

「実践的なPythonの辞書要素追加の例を参考にしたい」

✔当記事で得られる知識

  • Pythonの辞書(dict)の要素追加の基本
  • 辞書にキーと値を追加する方法とその応用
  • 実際のPythonの辞書要素追加の例

当記事では、Pythonの辞書(dict)に要素を追加する方法を基本から応用まで、具体的な例を交えてわかりやすく解説していきます。

ぜひ最後までご覧ください。

筆者プロフィール

筆者プロフィールアイコン

【現職】プロダクトマネージャー

【副業】ブログ(月間20万PV)/YouTube/Web・アプリ制作

「プログラミング × ライティング × 営業」の経験を活かし、30後半からのIT系職へシフト。現在はプロダクトマネージャーとして、さまざまな関係者の間に入り奮闘してます。当サイトでは、実際に手を動かせるWebアプリの開発を通じて、プログラミングはもちろん、IT職に必要な情報を提供していきます。

【当ブログで紹介しているサイト】

当サイトチュートリアルで作成したデモ版日報アプリ

Django × Reactで開発したツール系Webアプリ

✔人に見せても恥ずかしくないコードを書こう

「リーダブルコード」は、わかりやすく良いコードの定義を教えてくれる本です。

  • 見るからにきれいなコードの書き方
  • コードの分割方法
  • 変数や関数の命名規則

エンジニアのスタンダートとすべき基準を一から解説しています。

何回も読むのに値する本なので、ぜひ手にとって読んでみてください。

Python dictの基本

こちらでは、Pythonの辞書型(dict)についてお伝えします。

まずは基本を理解のうえ、次に進みましょう。

  • Pythonのdictとは?
  • dictの特徴
  • dictの基本構成

Pythonのdictとは?

Pythonのdictは、辞書型のデータ構造で、キーと値のペアを保存します。

{ キー : 値, キー : 値 }

任意のデータ型をキーとして、データを検索したり、格納したりすることが可能です。

dictは、キーのユニーク性を保証し、値の重複を許容します。

# 辞書の作成
student_scores = {
  "John": 85,
  "Emily": 92,
  "David": 78,
  "Sarah": 90
}

# 値の取得
print(student_scores["John"])  # 85

# 値の変更
student_scores["David"] = 80

# 新しい要素の追加
student_scores["Michael"] = 88

# 辞書の要素の数を取得
print(len(student_scores))  # 5

# キーの存在確認
print("Emily" in student_scores)  # True

# キーと値のループ処理
for key, value in student_scores.items():
  print(key, value)

この特性から、Pythonのdictは様々なデータ処理で重要な役割を果たしています。

dictの特徴

Pythonのdictは、非常に効率的なデータ構造です。

なぜならdictは、ハッシュテーブルというデータ構造を基に作られているから。

大量のデータでも高速に検索・追加・削除が可能。

ただし、その反面、順序を保持しないという特性もあります。

dictの基本構成

Pythonのdictは、{ }(中括弧)を用いて表現されます。

キーと値のペアは「:」(コロン)、各ペアは「,」(カンマ)で区切ってください。

例えば以下のようなdictを作成できます。

person = {'name': 'Alice', 'age': 20, 'city': 'Tokyo'}

これらのキーを使って対応する値を取り出すのです。

print(person['name'])  # Alice
print(person['age'])  # 20
print(person['city'])  # Tokyo

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

こちらでは、キーを指定して辞書に要素を追加・更新する方法お伝えします。

辞書に要素を追加する主要なやり方といえるでしょう。

  • キーを使って値を追加・更新
  • キーが存在すれば更新、存在しなければ追加
  • キーが存在すればそのまま、存在しなければ追加

キーを使って値を追加・更新

Pythonの辞書には、キーと値のペアで要素が格納されます。

my_dict = {"key1": "value", "key2": "value2"}

要素を追加するには、辞書に新しいキーを指定して値を代入しましょう。

my_dict['new_key'] = 'new_value'
print(my_dict.items())
# 出力:dict_items([('key1', 'value'), ('key2', 'value2'), ('new_key', 'new_value')])

キーが既に存在する場合は、この方法で値を上書き(更新)できます。

これは非常に直感的で、Pythonを使っている多くの人が頻繁に使用する方法です。

キーが存在すれば更新、存在しなければ追加

dict.update()メソッドまたはdict[key]を使って、キーが存在する場合は値を更新し、存在しない場合は新しいキーと値のペアを追加します。

これは、新しいデータを追加するか、既存のデータを更新するかを判断する際に役立つ方法です。

# 辞書の初期化
my_dict = {'apple': 3, 'banana': 5, 'orange': 2}

# キーが存在する場合は値を更新
my_dict['apple'] = 6

# キーが存在しない場合は新しいキーと値を追加
my_dict['grape'] = 4

# dict.update()メソッドを使用しても同様の結果を得られる
my_dict.update({'orange': 1, 'kiwi': 7})

# 結果を表示
print(my_dict)

キーが存在すればそのまま、存在しなければ追加

setdefaultメソッドを使うと、キーが辞書に存在する場合は何もせず、存在しない場合は新しい要素を追加できます。

my_dict.setdefault('key', 'default_value')

この方法は、キーが存在しない場合に初期値を設定する際に便利です。

# 辞書の初期化
my_dict = {'apple': 3, 'banana': 5, 'orange': 2}

# キーが存在する場合は何もしない
my_dict.setdefault('apple', 10)
# 出力:3

# キーが存在しない場合は新しい要素を追加
my_dict.setdefault('grape', 4)
# 出力:4

# 結果を表示
print(my_dict)
# 出力:{'apple': 3, 'banana': 5, 'orange': 2, 'grape': 4}

複数の辞書を連結(結合・マージ)する方法

次に、「複数の辞書を連結する方法」について解説します。

  • update()メソッドを使った連結
  • Python3.5以降の辞書リテラルによる連結
  • Python3.9以降の|演算子と|=演算子を使った連結

update()メソッドを使った連結

update()メソッドを使うと、1つの辞書に別の辞書の要素を追加できます。

このメソッドは、元の辞書を更新します。

dict1.update(dict2)

Python3.5以降の辞書リテラルによる連結

Python 3.5以降では、{**d1, **d2}のような辞書リテラルを使用して複数の辞書を連結できます。

この方法では、新しい辞書が作成され、元の辞書は変更されません。

merged_dict = {**dict1, **dict2}

Python3.9以降の|演算子と|=演算子を使った連結

Python 3.9で導入された|演算子を使うと、2つの辞書を簡単に結合できます。

merged_dict = dict1 | dict2

この方法でも新しい辞書が作成されます。

さらに、|=演算子を使うと、左側の辞書を更新して結合も可能です。

dict1 |= dict2

# 辞書の定義
dict1 = {'apple': 3, 'banana': 5}
dict2 = {'orange': 2, 'grape': 4}

# |演算子を使用して辞書を結合
merged_dict = dict1 | dict2

# 結合した辞書を表示
print(merged_dict)

# |=演算子を使用して辞書を更新して結合
dict1 |= dict2

# 更新した辞書を表示
print(dict1)

注意点とポイント

こちらでは、「辞書を操作する際の注意点とポイント」について解説します。

Pythonの辞書に値を追加する際の注意点を項目ごとに説明します。

  • キーの存在確認
  • キーの重複排除
  • update()メソッドの使用
  • キーの変更

キーの存在確認

辞書に値を追加する前に、追加しようとしているキーが既に存在するかどうかを確認することが重要です。

キーが存在する場合、値を上書きしてしまう可能性があります。

my_dict = {"key1": "value1", "key2": "value2"}

if "key1" not in my_dict:
    my_dict["key1"] = "new value"

上記の例では、”key1″が既に存在するため値は上書きされません。

キーの重複排除

辞書は一意のキーを持つことが重要です。

同じキーに対しては、複数の値を追加できません。

キーが重複する場合、最後の追加値が残ります。

   my_dict = {"key1": "value1"}

   my_dict["key1"] = "new value"  # 既存のキーに対して新しい値を追加

   print(my_dict)  # {"key1": "new value"}

上記の例では、”key1″の値が更新されます。

update()メソッドの使用

複数のキーと値を一度に辞書に追加する場合、update()メソッドを使用することができます。

   my_dict = {"key1": "value1"}

   new_data = {"key2": "value2", "key3": "value3"}

   my_dict.update(new_data)

   print(my_dict)  # {"key1": "value1", "key2": "value2", "key3": "value3"}

update()メソッドを使用することで、複数のキーと値をまとめて追加できます。

キーの変更

辞書に新しいキーと値を追加する場合、既存のキーと同じ名前の変数を使用しないように注意してください。

同じキー名を使用すると、既存の値が上書きされます。

   my_dict = {"key1": "value1"}

   key1 = "new key"
   value1 = "new value"

   my_dict[key1] = value1  # 既存のキーと同じ名前の変数を使用

   print(my_dict)  # {"new key": "new value"}

上記の例では、キーとして”key1″ではなく”new key”が追加されます。

これらの注意点を念頭に置きながら、Pythonの辞書に値を追加すること

まとめ

当記事でお伝えした内容はこちら。

  • キーを指定して辞書に要素を追加・更新する方法
  • 複数の辞書を連結する方法
  • 注意点とポイント

Pythonの辞書は非常に柔軟で強力なデータ構造であり、これらの操作をマスターすることで、データの管理と操作が効率的かつ効果的になります。

適切な方法を選んで、プログラムの品質とパフォーマンスを向上させましょう。

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