Pythonにおける**辞書(dict)**は、キー(Key)と値(Value)をペアにしてデータを格納する、非常に重要なデータ型です。「”name”」というキーに「”Tanaka”」という値を、「”id”」というキーに「101」という値を関連付ける、といった使い方をします。
リスト(list)がインデックス(0, 1, 2...)でデータを管理するのに対し、辞書はインデックスの代わりにユニーク(一意)なキーでデータを管理します。
この記事では、辞書を作成する基本的な3つの方法について解説します。
1. {} (波括弧) を使った作成(リテラル構文)
最も一般的で直感的な方法が、{}(波括弧)を使用するリテラル構文です。
キーと値のペアを指定する
{キー1: 値1, キー2: 値2} のように、コロン(:)でキーと値を区切り、カンマ(,)で各ペアを区切って記述します。
# ユーザーの設定情報を辞書として定義
user_config = {
"username": "admin-001",
"theme": "dark",
"notify_email": True,
"login_count": 25
}
print(f"作成された辞書: {user_config}")
print(f"型: {type(user_config)}")
実行結果:
作成された辞書: {'username': 'admin-001', 'theme': 'dark', 'notify_email': True, 'login_count': 25}
型: <class 'dict'>
空の辞書の作成
{}(波括弧)のみを記述すると、中身が空の辞書を作成できます。
empty_storage = {}
print(f"空の辞書: {empty_storage}")
print(f"型: {type(empty_storage)}")
実行結果:
空の辞書: {}
型: <class 'dict'>
重要な注意点
{}と書くと空の**辞書(dict)**が作成されます。 空のset(集合型)を作成したい場合は、{}ではなくset()コンストラクタを使用する必要があり、これはsetとdictの間で最も間違いやすい点の一つです。
2. dict() コンストラクタを使った作成
dict() という組み込みのコンストラクタ(関数のようなもの)を使っても辞書を作成できます。
キーワード引数(key=value)で作成する
キーが**文字列(かつPythonの変数名として有効な文字列)**である場合に限り、dict(キー=値) のようにキーワード引数として渡すことで辞書を作成できます。
この方法では、キーをクォーテーション(" や ')で囲む必要がなく、より簡潔に記述できる場合があります。
# キーワード引数で辞書を作成
server_settings = dict(
host="192.168.1.1",
port=5432,
database="main_db"
)
print(f"設定: {server_settings}")
実行結果:
設定: {'host': '192.168.1.1', 'port': 5432, 'database': 'main_db'}
(キー, 値) のペアのリスト(イテラブル)から作成する
他のデータ形式(例:リストに格納されたタプル)から辞書を生成する場合に便利な方法です。
(キー, 値) という形式のタプルが複数格納されたリストを dict() に渡します。
# (キー, 値) のタプルのリスト
data_pairs = [
("item_code", "A-901"),
("quantity", 150),
("location", "Warehouse-C")
]
# リストから辞書に変換
stock_info = dict(data_pairs)
print(f"在庫情報 (辞書): {stock_info}")
実行結果:
在庫情報 (辞書): {'item_code': 'A-901', 'quantity': 150, 'location': 'Warehouse-C'}
dict() で空の辞書を作成する
dict() を引数なしで呼び出すと、空の辞書が作成されます。これは {} と等価です。
empty_dict_constructor = dict()
print(f"空の辞書 (dict()): {empty_dict_constructor}")
まとめ
Pythonで辞書を作成する方法を3つ紹介しました。
{キー: 値}(リテラル構文): 最も一般的で、どのようなキー(文字列、数値など)でも指定できます。dict(キー=値)(キーワード引数): キーが単純な文字列の場合に簡潔に記述できます。dict([(キー, 値), ...])(イテラブル): リストやタプルなど、他のデータ構造から辞書を動的に生成する際に使用します。
空の辞書を作成する場合は、{} を使うのが一般的です。
