Pythonの辞書型(dict)は、キーと値をペアで保持する可変長のマッピング型データ構造です。キーは一意である必要があり、効率的なデータ検索や管理に適しています。
辞書の定義
辞書は波括弧 {} を使用して定義します。キーと値はコロン : で区切り、ペアをコンマ , で並べます。キーが重複した場合、後から定義された値で上書きされます。
# 辞書の作成例
user_info = {"name": "Taro", "gender": "male", "age": 25}
empty_dict = {}
# 重複キーの上書き動作
data = {"a": 1, "b": 2, "a": 3}
print(data) # {'a': 3, 'b': 2}
値の取得方法
特定のキーに対応する値を取得するには、主に以下の手法を用います。
- 直接アクセス:
dict[key]で取得しますが、キーが存在しない場合はKeyErrorが発生します。 - getメソッド:
dict.get(key, default)を使うと、キーがない場合に例外を出さず、指定したデフォルト値(またはNone)を返します。 - setdefaultメソッド:
dict.setdefault(key, value)は、キーが存在すればその値を返し、存在しなければ新しいキーと値を辞書に追加します。
user = {"name": "Taro", "age": 25}
print(user["name"]) # Taro
print(user.get("email", "N/A")) # N/A
user.setdefault("status", "active")
print(user) # {'name': 'Taro', 'age': 25, 'status': 'active'}
値の更新
既存の値を変更または追加するには、直接代入するか update() を利用します。
user = {"name": "Taro", "age": 25}
# 直接代入
user["age"] = 26
# updateメソッドによる一括更新または追加
user.update({"name": "Hanako", "location": "Tokyo"})
# 結果: {'name': 'Hanako', 'age': 26, 'location': 'Tokyo'}
要素の削除
削除には目的に応じたメソッドが用意されています。
pop(key): 指定したキーを削除し、その値を返します。popitem(): 最後に挿入されたペアを削除します。clear(): 全ての要素を削除し、空の辞書にします。
user = {"a": 1, "b": 2, "c": 3}
user.pop("b")
user.popitem()
# 結果: {'a': 1}
キー・値・ペアの取得
辞書内のデータを反復処理したりリスト化したりするために、ビューオブジェクトを取得できます。
keys(): 全てのキーを取得values(): 全ての値を取得items(): 全てのキーと値のペアを取得
user = {"id": 101, "role": "admin"}
# リスト形式への変換例
keys_list = list(user.keys())
values_list = list(user.values())
pairs_list = list(user.items())