【初心者向け】Pythonの辞書操作:追加・更新・上書きの基本と注意点

【初心者向け】Pythonの辞書操作:追加・更新・上書きの基本と注意点

Pythonの辞書(dictionary)は、データをキーと値のペアで管理できる便利なデータ構造です。この記事では、辞書に新しい要素を追加したり、すでに存在するキーの値を**更新(上書き)**したりする基本的な方法について、初心者にもわかりやすく解説します。

辞書はPythonのプログラミングにおいて頻繁に登場するため、しっかりと使い方を理解しておくことが大切です。本記事では、辞書操作の基本から、ありがちなミスや注意点まで網羅的に紹介します。

Pythonの辞書(dictionary)とは?

Pythonの辞書とは、「キー」と「値」のペアでデータを管理するデータ構造です。キーを指定して値にアクセスできるため、データを分類・整理して扱う際に非常に便利です。

辞書の基本構文

person = {
    "name": "Yuki",
    "age": 30,
    "city": "Tokyo"
}

このように、各要素は"キー": 値のペアで構成されており、キーは文字列だけでなく数値やタプルでも指定可能です(変更できる型以外)。

辞書に新しい要素を追加する方法

辞書に新しいキーと値のペアを追加するには、単に新しいキーを指定して値を代入するだけです。

追加の基本構文

person["job"] = "Engineer"

このように書くことで、"job"という新しいキーと、それに対応する値"Engineer"が辞書に追加されます。

追加後の辞書の中身

print(person)
# 出力: {'name': 'Yuki', 'age': 30, 'city': 'Tokyo', 'job': 'Engineer'}

この操作はとてもシンプルなので、初心者でも扱いやすいのが特徴です。

既存の要素を更新・上書きする方法

既存のキーがすでに辞書に存在している場合、同じ方法で値を変更できます。これが「上書き」にあたります。

上書きの例

person["age"] = 31

"age"の値が30から31に更新されました。

出力確認

print(person)
# 出力: {'name': 'Yuki', 'age': 31, 'city': 'Tokyo', 'job': 'Engineer'}

このように、同じ構文で追加と更新の両方ができるのがPython辞書の特徴です。

複数の要素を一度に追加・更新するには(updateメソッド)

辞書に複数のキーと値を一括で追加・更新したい場合は、update()メソッドが便利です。

updateの基本的な使い方

person.update({
    "age": 32,
    "hobby": "cycling"
})

このコードでは、"age"が更新され、"hobby"が新しく追加されます。

出力結果

print(person)
# 出力: {'name': 'Yuki', 'age': 32, 'city': 'Tokyo', 'job': 'Engineer', 'hobby': 'cycling'}

update()は既存のキーを更新し、存在しないキーは新規追加してくれる便利なメソッドです。

条件付きで辞書を更新する方法

ときには、キーが存在する場合のみ更新したい、あるいは存在しない場合のみ追加したい、という処理も必要です。以下のような条件分岐が有効です。

存在しない場合に追加する

if "email" not in person:
    person["email"] = "yuki@example.com"

存在する場合にのみ更新する

if "job" in person:
    person["job"] = "Senior Engineer"

このように条件分岐を使えば、より安全に辞書を操作できます。

辞書追加・更新時の注意点

辞書の操作で気をつけるべきポイントもあります。

上書きされる危険性に注意

既存のキーに対して値を設定すると、元のデータが失われるため注意が必要です。

person["city"] = "Osaka"  # 元の"Tokyo"は失われる

ミスタイプによる意図しない追加

辞書では存在しないキーを指定すると自動的に追加されてしまうため、スペルミスによるバグにも気をつけましょう。

person["naem"] = "Yuki"  # "name"のミス → 新たに"naem"が追加される

辞書を安全に扱うテクニック

より安全に辞書を扱いたい場合、以下のようなテクニックも有効です。

get()で値を安全に取得する

存在しないキーを指定してもエラーにならず、Noneを返してくれます。

job = person.get("job")
print(job)  # "Engineer"

setdefault()で値を追加しつつ取得

キーが存在しない場合にのみ、デフォルト値を設定できます。

email = person.setdefault("email", "default@example.com")

この方法なら、「存在チェック → 追加」の処理が1行で済みます。

よくあるエラーとその対処法

存在しないキー(KeyError)にアクセスしようとすると発生します。

print(person["unknown"])  # KeyError

get()inでチェックすることで回避できます。

辞書のキーにリストなどの変更可能型を使おうとするとエラー(TypeError)になります。

invalid_dict = {[1, 2]: "NG"}  # TypeError

→ キーには変更不可なデータ型(文字列、数値、タプルなど)を使いましょう。

まとめ:

Pythonの辞書は、情報を効率的に管理できる強力なデータ構造です。追加、更新、上書きの基本的な方法を覚えておくだけで、日常的なデータ処理がグッと楽になります。

  • 辞書[key] = 値:追加または更新
  • update({key: 値}):一括追加・更新
  • get()setdefault()で安全に操作
  • キーの存在チェックを忘れずに

辞書の基本をしっかりマスターし、より安全で効率的なPythonコードを書けるようにしていきましょう。