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コードを書けるようにしていきましょう。