Pythonの辞書(Dictionaries)は、キーと値のペアを格納するためのデータ構造です。辞書は、非常に効率的なキーによるアクセスを提供し、キーはユニークである必要がありますが、値は任意のデータ型を取ることができます。
辞書の特徴
- キーと値のペア(Key-Value Pairs):
- 辞書は、キーとそれに関連付けられた値を持つペアのコレクションです。キーは一意でなければならず、値は重複しても構いません。
- 順序付き(Ordered, Python 3.7+):
- Python 3.7以降、辞書は挿入順序を保持します。それ以前のバージョンでは、順序は保証されません。
- 変更可能(Mutable):
- 辞書は変更可能であり、作成後に要素の追加、削除、更新が可能です。
- ユニークなキー(Unique Keys):
- 辞書内の各キーは一意である必要があります。同じキーが複数回存在することは許されません。

辞書の作成と操作
Pythonでは、辞書(dictionary)は波括弧 {} を使用して作成できます。また、dict() コンストラクタを使用して辞書を作成することもできます。以下にそれぞれの方法の例を示します。
波括弧 {} を使用した方法
# 空の辞書を作成
empty_dict = {}
# 要素を持つ辞書を作成
person = {
"name": "Alice",
"age": 30,
"city": "New York"
}
print(person) # {'name': 'Alice', 'age': 30, 'city': 'New York'}
dict() コンストラクタを使用した方法
# 空の辞書を作成
empty_dict = dict()
# 要素を持つ辞書を作成
person = dict(name="Alice", age=30, city="New York")
print(person) # {'name': 'Alice', 'age': 30, 'city': 'New York'}
両方の方法は同じ結果をもたらしますが、用途や好みに応じて使い分けることができます。
辞書の作成例
# 辞書の作成
my_dict = {
"name": "Alice",
"age": 25,
"city": "New York"
}
print(my_dict) # 出力: {'name': 'Alice', 'age': 25, 'city': 'New York'}
# dict() コンストラクタを使用して辞書を作成
another_dict = dict(name="Bob", age=30, city="Los Angeles")
print(another_dict) # 出力: {'name': 'Bob', 'age': 30, 'city': 'Los Angeles'}
要素のアクセスと操作の例
# 要素へのアクセス print(my_dict["name"]) # 出力: Alice # 要素の追加 my_dict["email"] = "[email protected]" print(my_dict) # 出力: {'name': 'Alice', 'age': 25, 'city': 'New York', 'email': '[email protected]'} # 要素の更新 my_dict["age"] = 26 print(my_dict) # 出力: {'name': 'Alice', 'age': 26, 'city': 'New York', 'email': '[email protected]'} # 要素の削除 del my_dict["city"] print(my_dict) # 出力: {'name': 'Alice', 'age': 26, 'email': '[email protected]'}
辞書のメソッドの例
# keys() メソッド keys = my_dict.keys() print(keys) # 出力: dict_keys(['name', 'age', 'email']) # values() メソッド values = my_dict.values() print(values) # 出力: dict_values(['Alice', 26, '[email protected]']) # items() メソッド items = my_dict.items() print(items) # 出力: dict_items([('name', 'Alice'), ('age', 26), ('email', '[email protected]')])
辞書の使用例
# 辞書を使った簡単な電話帳
phone_book = {
"John": "555-1234",
"Jane": "555-5678",
"Jake": "555-8765"
}
# 電話番号を取得
print(phone_book["Jane"]) # 出力: 555-5678
# 新しいエントリの追加
phone_book["Jill"] = "555-4321"
print(phone_book) # 出力: {'John': '555-1234', 'Jane': '555-5678', 'Jake': '555-8765', 'Jill': '555-4321'}
# エントリの削除
del phone_book["John"]
print(phone_book) # 出力: {'Jane': '555-5678', 'Jake': '555-8765', 'Jill': '555-4321'}
ネストされた辞書(Nested Dictionaries)
ネストされた辞書(Nested Dictionaries)は、辞書の中に他の辞書を含む構造のことを指します。ネストされた辞書を使用すると、階層的なデータを整理して管理するのに非常に便利です。以下にネストされた辞書の例を示します。
ネストされた辞書の例
# ネストされた辞書の作成
company = {
"employee_1": {
"name": "Alice",
"age": 30,
"department": "HR"
},
"employee_2": {
"name": "Bob",
"age": 35,
"department": "Engineering"
},
"employee_3": {
"name": "Charlie",
"age": 28,
"department": "Marketing"
}
}
# ネストされた辞書のアクセス
print(company["employee_1"]["name"]) # Alice
print(company["employee_2"]["department"]) # Engineering
# ネストされた辞書の更新
company["employee_3"]["age"] = 29
print(company["employee_3"]["age"]) # 29
この例では、company 辞書の各キーが従業員の識別子で、その値が従業員に関する詳細情報を含む辞書となっています。各従業員辞書は、name、age、および department というキーを持っています。
辞書のネストを使用するメリット
- データの整理: データを階層構造で整理できるため、関連する情報をグループ化して保持するのに役立ちます。
- 読みやすさ: データが論理的にグループ化されているため、コードの可読性が向上します。
- 柔軟性: 辞書のネストは柔軟であり、複雑なデータ構造を表現するのに適しています。
このように、ネストされた辞書を使用することで、データの管理とアクセスが容易になります。
主な使用例
- データの格納: キーと値のペアを使って関連データを効率的に格納する。
- 高速な検索: キーを使って値を高速に検索する。
- 構造化データ: JSONなどの構造化データをPythonで扱う場合に非常に便利。
