Pythonの辞書(dictionary)は、キー(Key)と値(Value)を対応させて管理するデータ構造です。実務におけるデータ処理や設定値の管理、API連携など、幅広い場面で必須となる基礎技術です。
今回は、辞書を扱う上で基本となる「値の取得」「要素の追加・更新」「要素の削除」、さらに「キーや値の一覧取得」について、実務で役立つ安全な記述方法を解説します!
値の取得方法と安全なgetメソッドの活用
辞書から特定の値を取得するには、キーを直接角括弧で指定する方法と、getメソッドを利用する2つの方法があります。
- 直接キーを指定する方法: キーが存在しない場合、KeyErrorという例外が発生します。確実にキーが存在すると分かっている場面に適しています。
- getメソッドを利用する方法: キーが存在しない場合でもエラーにならず、Noneまたは指定した初期値(デフォルト値)を返します。事前にキーの存在確認を行う手間が省けるため、実務ではこちらの活用がおすすめです。
# 辞書の作成
data = {"name": "佐藤", "age": 30, "role": "Engineer"}
# 方法1: キーを指定して取得
print(data["name"]) # 出力: 佐藤
# 方法2: getメソッドで取得(推奨)
print(data.get("age")) # 出力: 30
print(data.get("city")) # 出力: None(存在しない場合)
print(data.get("city", "未設定")) # 出力: 未設定(第2引数で初期値を指定可能)
要素の追加と更新における代入とupdateメソッド
辞書に新しいデータを登録したり、既存の値を書き換えたりする操作は直感的に行うことができます。
- キーへの値の代入: 指定したキーが辞書内に存在しない場合は新規追加となり、既に存在する場合は上書き更新となります。
- updateメソッドによる一括更新: 複数の要素をまとめて更新したい場合や、別の辞書同士を結合したい場合に便利です。
data = {"apple": 100, "banana": 200}
# 追加
data["grape"] = 300
print(data)
# 出力: {'apple': 100, 'banana': 200, 'grape': 300}
# 更新(既存のキーを指定)
data["apple"] = 150
print(data)
# 出力: {'apple': 150, 'banana': 200, 'grape': 300}
# 別の辞書を結合してまとめて更新する場合
new_data = {"banana": 250, "orange": 400}
data.update(new_data)
# bananaは更新され、orangeは追加されます
要素の削除方法 popメソッドとdel文の使い分け
辞書から不要になったデータを削除する操作には、用途に応じた複数の手段が用意されています。
- popメソッド: 指定したキーの要素を削除すると同時に、その値を戻り値として取り出します。削除したデータをその後の処理で利用したい場合に最適です。
- del文: 指定したキーの要素を削除します。戻り値は取得できません。
- clearメソッド: 辞書内のすべての要素を一度に削除し、空の辞書にします。
data = {"apple": 150, "banana": 250, "orange": 400}
# 指定して削除(popは削除した値を返すので、変数で受け取ることも可能)
removed_value = data.pop("banana")
print(removed_value) # 出力: 250
print(data) # 出力: {'apple': 150, 'orange': 400}
# del文で削除(値を返しません)
del data["apple"]
# すべて削除
data.clear()
print(data) # 出力: {}
キーと値の一覧取得とループ処理の実践
辞書に含まれる全データを走査したり、特定の条件で抽出したりする際には、一覧取得用のメソッドが役立ちます。
- keysメソッド: 辞書に含まれるすべてのキーを一覧で取得します。
- valuesメソッド: 辞書に含まれるすべての値を一覧で取得します。
- itemsメソッド: キーと値のペアをタプル形式で取得します。for文による繰り返し処理と組み合わせることで、データの走査が極めてスムーズに行えます。
data = {"name": "佐藤", "age": 30, "role": "Engineer"}
# キーの一覧を取得
keys = list(data.keys())
print(keys) # 出力: ['name', 'age', 'role']
# 値の一覧を取得
values = list(data.values())
print(values) # 出力: ['佐藤', 30, 'Engineer']
# キーと値をセットで取得(for文での反復処理)
for key, value in data.items():
print(f"{key}: {value}")
辞書の基本操作まとめ
| 操作 | コード例 | 特徴 |
| 値の取得 | data.get(“key”) | キーが存在しなくても例外が発生せず、安全に取得可能 |
| 追加・更新 | data[“key”] = value | キーが存在しなければ追加、存在すれば上書き更新 |
| 削除 | data.pop(“key”) | 該当要素を削除しつつ、その値を変数等で受け取り可能 |
| ループ処理 | data.items() | キーと値のペアを同時に取り出して反復処理を実行可能 |
実務で扱うデータ構造の中には、辞書の値としてさらに辞書やリストが格納される入れ子(ネスト)構造も多く見られます。
そのためまずは今回の基本操作をしっかり身につけ、安全で読みやすいコード作成に役立ててみてください!
Pythonの本は種類が多すぎて、業務効率化に使えるのか見分けるのが大変ですよね。実務自動化に5年以上携わってきた私が、「デスクワークの自動化に即戦力になった本」を厳選して紹介します。失敗しない1冊を見つけたい方は、ぜひ参考にしてみてください。
リンク
リンク

コメント