
スポンサーリンク
Pythonの辞書型(dict)は、キーと値のペアを格納するデータ構造であり、データを効率的に管理・操作するために広く利用されます。
辞書型とは?
Pythonの辞書型(dict)は、キーと値のペアを管理するデータ構造で、リストやタプルと並ぶ基本的なデータ型の一つです。キーを使って値にアクセスできるため、高速なデータ検索や管理が可能です。JSONなどのデータフォーマットとも親和性が高く、Web開発やデータ処理に広く利用されています。
辞書型の基本
辞書型は、{}
を使用して定義され、キーと値は :
で区切られます。
# 辞書の定義person = {"name": "Alice", "age": 25, "city": "Tokyo"}print(person) # 出力: {'name': 'Alice', 'age': 25, 'city': 'Tokyo'}
キーを指定して値を取得するには []
を使用します。
person = {"name": "Alice", "age": 25, "city": "Tokyo"}print(person["name"]) # 出力: Alice
存在しないキーを指定すると KeyError
が発生するため、安全に取得する場合は get()
を使用します。
person = {"name": "Alice", "age": 25, "city": "Tokyo"}print(person.get("job", "未設定")) # 出力: 未設定
値の追加と更新
辞書に新しいキーと値を追加したり、既存の値を更新できます。
person = {"name": "Alice", "age": 25, "city": "Tokyo"}person["job"] = "Engineer" # 新しいキーと値を追加person["age"] = 26 # 既存の値を更新print(person) # 出力: {'name': 'Alice', 'age': 26, 'city': 'Tokyo', 'job': 'Engineer'}
キーの存在確認(in)
in
キーワードを使用すると、キーが辞書内に存在するか確認できます。
person = {"name": "Alice", "age": 25, "city": "Tokyo"}if "name" in person: print("名前が登録されています。") # 出力: 名前が登録されています。
値の削除(del,pop)
del
または pop()
を使用すると、特定のキーと値を削除できます。
person = {'name': 'Alice', 'age': 26, 'city': 'Tokyo', 'job': 'Engineer'}del person["city"]print(person) # 出力: {'name': 'Alice', 'age': 26, 'job': 'Engineer'}
job = person.pop("job") # 削除しつつ値を取得print(job) # 出力: Engineerprint(person) # 出力: {'name': 'Alice', 'age': 26}
辞書のイテレーション
辞書をループ処理する方法も多数あります。
person = {'name': 'Alice', 'age': 26}# キーを取得for key in person.keys(): print(key) # 出力: name, age
# 値を取得for value in person.values(): print(value) # 出力: Alice, 26
# キーと値のペアを取得for key, value in person.items(): print(f"{key}: {value}") # 出力: name: Alice, age: 26
辞書内包表記
辞書内包表記を使うと、簡潔なコードで辞書を作成できます。
# キーと値の2乗を持つ辞書を作成squares = {x: x**2 for x in range(1, 6)}print(squares) # 出力: {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
条件を指定してフィルタリングも可能です。
# 偶数のキーのみを持つ辞書を作成even_squares = {x: x**2 for x in range(1, 11) if x % 2 == 0}print(even_squares) # 出力: {2: 4, 4: 16, 6: 36, 8: 64, 10: 100}
辞書のネスト方法(入れ子構造)
辞書はネスト(入れ子構造)やリストと組み合わせることで、より複雑なデータ構造を作成できます。
students = { "Alice": {"age": 25, "city": "Tokyo"}, "Bob": {"age": 30, "city": "Osaka"}}print(students["Alice"]["city"]) # 出力: Tokyo
また、辞書をリストの要素として格納することも可能です。
people = [ {"name": "Alice", "age": 25}, {"name": "Bob", "age": 30}]for person in people: print(person["name"]) # 出力: Alice, Bob
JSONと組み合わせた応用例
Pythonの辞書型は、JSON形式との相互変換が容易であり、API通信やデータの保存・読み込みに活用されます。
import json
# 辞書をJSON文字列に変換person_dict = {"name": "Alice", "age": 25, "city": "Tokyo"}json_str = json.dumps(person_dict, ensure_ascii=False)print(json_str) # 出力: {"name": "Alice", "age": 25, "city": "Tokyo"}
# JSON文字列を辞書に変換person_dict_loaded = json.loads(json_str)print(person_dict_loaded["name"]) # 出力: Alice
また、JSONファイルを保存・読み込みすることも可能です。
import json
person_dict = {"name": "Alice", "age": 25, "city": "Tokyo"}# JSONファイルに書き込みwith open("data.json", "w", encoding="utf-8") as f: json.dump(person_dict, f, ensure_ascii=False, indent=4)
# JSONファイルを読み込みwith open("data.json", "r", encoding="utf-8") as f: data = json.load(f)print(data["city"]) # 出力: Tokyo
このように、辞書型とJSONを組み合わせることで、データのシリアライズやストレージ管理が容易になります。
まとめ
- Pythonの辞書型は、データの管理や検索に便利なデータ構造です。
- 辞書内包表記を活用すると、シンプルかつ効率的なコードを書くことができます。
- JSONとの相互変換が容易なため、APIやデータ処理の場面でも活躍します。
基本操作や応用方法を理解することで、効率的なプログラムを書くことが可能になります。
ぜひ積極的に活用しましょう。
以上で本記事の解説を終わります。
よいITライフを!