Pythonの辞書型(dict)とは?使い方を徹底解説!

Pythonの辞書型(dict)とは?使い方を徹底解説!

記事の文字数:1064

Pythonの辞書型(dict)は、データをキーと値のペアで管理するデータ構造です。本記事では、辞書型の基本から、操作方法、イテレーション、応用例、さらには辞書内包表記やJSONとの連携方法まで詳しく解説します。辞書を活用することで、データ管理をより効率的に行うことができます。


スポンサーリンク

Pythonの辞書型(dict)は、キーと値のペアを格納するデータ構造であり、データを効率的に管理・操作するために広く利用されます。

辞書型とは?

Pythonの辞書型(dict)は、キーと値のペアを管理するデータ構造で、リストやタプルと並ぶ基本的なデータ型の一つです。キーを使って値にアクセスできるため、高速なデータ検索や管理が可能です。JSONなどのデータフォーマットとも親和性が高く、Web開発やデータ処理に広く利用されています。

辞書型の基本

辞書型は、{} を使用して定義され、キーと値は : で区切られます。

dict-ex01.py
# 辞書の定義
person = {"name": "Alice", "age": 25, "city": "Tokyo"}
print(person) # 出力: {'name': 'Alice', 'age': 25, 'city': 'Tokyo'}

キーを指定して値を取得するには [] を使用します。

dict-ex02.py
person = {"name": "Alice", "age": 25, "city": "Tokyo"}
print(person["name"]) # 出力: Alice

存在しないキーを指定すると KeyError が発生するため、安全に取得する場合は get() を使用します。

dict-ex03.py
person = {"name": "Alice", "age": 25, "city": "Tokyo"}
print(person.get("job", "未設定")) # 出力: 未設定

値の追加と更新

辞書に新しいキーと値を追加したり、既存の値を更新できます。

dict-ex04.py
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 キーワードを使用すると、キーが辞書内に存在するか確認できます。

dict-ex05.py
person = {"name": "Alice", "age": 25, "city": "Tokyo"}
if "name" in person:
print("名前が登録されています。") # 出力: 名前が登録されています。

値の削除(del,pop)

del または pop() を使用すると、特定のキーと値を削除できます。

dict-ex06.py
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) # 出力: Engineer
print(person) # 出力: {'name': 'Alice', 'age': 26}

辞書のイテレーション

辞書をループ処理する方法も多数あります。

dict-ex07.py
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

辞書内包表記

辞書内包表記を使うと、簡潔なコードで辞書を作成できます。

dict-ex08.py
# キーと値の2乗を持つ辞書を作成
squares = {x: x**2 for x in range(1, 6)}
print(squares) # 出力: {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

条件を指定してフィルタリングも可能です。

dict-ex09.py
# 偶数のキーのみを持つ辞書を作成
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}

辞書のネスト方法(入れ子構造)

辞書はネスト(入れ子構造)やリストと組み合わせることで、より複雑なデータ構造を作成できます。

dict-ex10.py
students = {
"Alice": {"age": 25, "city": "Tokyo"},
"Bob": {"age": 30, "city": "Osaka"}
}
print(students["Alice"]["city"]) # 出力: Tokyo

また、辞書をリストの要素として格納することも可能です。

dict-ex11.py
people = [
{"name": "Alice", "age": 25},
{"name": "Bob", "age": 30}
]
for person in people:
print(person["name"]) # 出力: Alice, Bob

JSONと組み合わせた応用例

Pythonの辞書型は、JSON形式との相互変換が容易であり、API通信やデータの保存・読み込みに活用されます。

dict-ex12.py
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ファイルを保存・読み込みすることも可能です。

dict-ex13.py
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ライフを!
スポンサーリンク
Scroll to Top