辞書の追加・更新・削除をマスター
Pythonの辞書(dict
)は、キーと値をペアで管理するデータ構造です。リストなどのシーケンシャルなデータ型とは異なり、任意のキーを用いて高速に値へアクセスできるため、データを柔軟かつ効率的に取り扱うことができます。今回は「辞書への要素の追加」「既存の値の更新」「要素の削除」といった基本操作をマスターしていきましょう。
辞書の基本的な構造
辞書は中かっこ({}
)で定義し、キー:値
の形式で要素を記述します。次の例を見てみましょう。
# 辞書の定義例
user_info = {
"name": "Alice",
"age": 25,
"city": "Tokyo"
}
print(user_info["name"]) # "Alice" と表示される
user_info
という辞書には、"name"
、"age"
、"city"
というキーと、それぞれに対応する値が格納されています。特定のキーを使って値を参照できるのが、辞書の大きな特徴です。
辞書に要素を追加する
辞書に新しいキーと値のペアを追加する方法は主に以下の2つがあります。
- 新しいキーを指定して代入
update()
メソッドを使う
1. 新しいキーを指定して代入
もっともシンプルな方法は、まだ存在しないキーを指定して値を代入するやり方です。以下に例を示します。
user_info = {"name": "Alice", "age": 25, "city": "Tokyo"}
user_info["job"] = "Engineer" # 新しいキー"job"を追加
print(user_info)
# 出力: {"name": "Alice", "age": 25, "city": "Tokyo", "job": "Engineer"}
存在しないキーを指定すると、そのキーと値が辞書の末尾(実際は順序保証の仕組みにより最後)に追加されます。このようにシンプルに新しいキーを割り当てる方法が最も直感的です。
2. update()
メソッドを使う
dict
型には、複数のキーと値をまとめて一度に更新・追加できるupdate()
メソッドがあります。例えば次のように書くことで、一度に複数のキーを追加できます。
user_info = {"name": "Alice", "age": 25, "city": "Tokyo"}
# update()を使って新しい要素をまとめて追加
user_info.update({
"job": "Engineer",
"language": "Python"
})
print(user_info)
# 出力: {
# "name": "Alice",
# "age": 25,
# "city": "Tokyo",
# "job": "Engineer",
# "language": "Python"
# }
update()
メソッドは、追加だけでなく後述する「更新」にも使える便利なメソッドです。辞書を結合するときなどに活用できます。
辞書の値を更新する
すでに存在しているキーに別の値を上書きすると、「値の更新」が行われます。更新の仕方は以下の方法があります。
- 既存のキーに対して代入
update()
メソッドでまとめて更新
1. 既存のキーに対して代入
辞書内で既に存在するキーに新しい値を代入すると、そのキーの値は上書きされます。例えば年齢をアップデートする例を見てみましょう。
user_info = {"name": "Alice", "age": 25, "city": "Tokyo"}
user_info["age"] = 26 # 既存のキーに新たな値を代入
print(user_info["age"]) # 出力: 26
このように、存在するキーに対して代入を行うと、そのキーの値が更新されます。
2. update()
メソッドでまとめて更新
update()
に複数のキーを指定すると、一度にすべての値を更新できます。次の例では、ユーザー情報の年齢と居住地を同時に変更しています。
user_info = {"name": "Alice", "age": 25, "city": "Tokyo"}
user_info.update({
"age": 30,
"city": "Osaka"
})
print(user_info)
# 出力: {"name": "Alice", "age": 30, "city": "Osaka"}
もし指定したキーが存在しなかった場合は、新しくキーと値が追加されます。一方、既に存在しているキーの場合は値が上書きされるという、柔軟性の高い仕組みです。
辞書から要素を削除する
不要になったキーと値のペアを辞書から削除するには、以下の3つの方法がよく使われます。
del
ステートメントを用いるpop()
メソッドを用いるpopitem()
メソッドを用いる
1. del
ステートメントを用いる
もっともシンプルなのはdel
ステートメントを使う方法です。削除したいキーを明示的に指定して削除できます。
user_info = {"name": "Alice", "age": 25, "city": "Tokyo", "job": "Engineer"}
del user_info["job"] # キー"job"を削除
print(user_info)
# 出力: {"name": "Alice", "age": 25, "city": "Tokyo"}
指定したキーが辞書内に存在しない場合、KeyError
が発生するので注意しましょう。
2. pop()
メソッドを用いる
pop()
は、指定したキーの値を取得しつつ辞書から削除できるメソッドです。削除した値を変数に保存できるという利点があります。例を見てみましょう。
user_info = {"name": "Alice", "age": 25, "city": "Tokyo", "job": "Engineer"}
removed_value = user_info.pop("city")
print(removed_value) # "Tokyo"
print(user_info)
# 出力: {"name": "Alice", "age": 25, "job": "Engineer"}
pop()
によって取り出した値は必要に応じて処理に回すことができます。もし存在しないキーをpop()
に渡すとエラー(KeyError
)が発生する点はdel
と同様です。ただし、pop()
は第2引数に「見つからなかったときのデフォルト値」を与えることが可能で、その場合はエラーを回避してデフォルト値を返すようにできます。
3. popitem()
メソッドを用いる
popitem()
は、辞書の最後に追加されたキーと値のペアを取り除いて返します。Python 3.7以降では辞書が挿入順を維持するようになったため、一番最後に追加された要素を「LIFO(後入れ先出し)」のように削除できます。
user_info = {
"name": "Alice",
"age": 25,
"city": "Tokyo"
}
user_info["job"] = "Engineer" # 先に job を追加
user_info["favorite_color"] = "Red" # 次に favorite_color を追加
# popitem()は最後に追加された("favorite_color", "Red")を削除してタプルで返す
removed_pair = user_info.popitem()
print(removed_pair) # ("favorite_color", "Red")
print(user_info)
# 出力: {"name": "Alice", "age": 25, "city": "Tokyo", "job": "Engineer"}
挿入順序を考慮して最後に追加された要素を削除したい場合に便利ですが、削除したいキーが明確な場合はdel
やpop()
を使うほうが一般的です。
まとめ
以上のように、Pythonの辞書では要素の追加・更新・削除を簡潔に行うことができます。update()
やpop()
などのメソッドを活用すれば、より柔軟に辞書を扱えます。ポイントを振り返ると、
- 新規追加には単純な代入または
update()
- 値の更新も同様(既存キーであれば上書き)
- 不要な要素の削除には
del
やpop()
、popitem()
辞書はデータを整理して管理するときに頻繁に利用されるため、今回学んだ追加・更新・削除の操作をスムーズに使いこなせるようになることがとても重要です。初心者の方はまずこれらの操作に慣れ、実際にいくつかの実行例を試してみることをおすすめします。辞書を使えるようになると、より高度なデータ処理やAPIのレスポンス操作、設定ファイルの取り扱いなど、多様な場面で役立つでしょう。
これで辞書の基本的な操作はバッチリです。ぜひ自分の開発プロジェクトや学習の中で、積極的に辞書を活用してみてください!