Pythonで辞書を作成する3つの方法:dict()、波括弧、辞書内包表記を徹底解説
Pythonの辞書(Dictionary)は、キーと値のペアを格納する、非常に柔軟で強力なデータ構造です。データの高速な検索や、特定のデータに名前を付けてアクセスしたい場合に不可欠な要素です。この記事では、Pythonで辞書を作成する主要な3つの方法、すなわちdict()コンストラクタ、波括弧{}、そして辞書内包表記について、それぞれの特徴と使い方を短いサンプルコードとともに詳しく解説します。
辞書(Dictionary)とは?
辞書は、他の言語におけるハッシュマップや連想配列に相当するデータ構造です。各要素が「キー(key)」と「値(value)」のペアで構成され、キーを使って値にアクセスします。キーは一意でなければなりませんが、値は重複しても構いません。
# 簡単な辞書の例
user_info = {"name": "Alice", "age": 30, "city": "Tokyo"}
print(f"ユーザー名: {user_info['name']}")
# 出力: ユーザー名: Alice
辞書を作成する3つの主要な方法
1. 波括弧 {} を使う方法(最も一般的)
最も一般的で直感的な辞書の作成方法は、**波括弧{}**を使ってキーと値のペアを直接記述することです。各ペアはコロン:で区切られ、ペア同士はカンマ,で区切られます。
# キーと値を直接指定
person = {"name": "Bob", "age": 25, "occupation": "Engineer"}
print(f"作成された辞書: {person}")
# 出力: 作成された辞書: {'name': 'Bob', 'age': 25, 'occupation': 'Engineer'}
# 空の辞書を作成
empty_dict = {}
print(f"空の辞書: {empty_dict}")
# 出力: 空の辞書: {}
この方法は、辞書の内容が明確で、かつ静的に定義される場合に最適です。
2. dict()コンストラクタを使う方法
Pythonの組み込み関数である**dict()コンストラクタ**は、様々な方法で辞書を作成する柔軟性を提供します。
a. キーワード引数を使う方法
キーが有効なPythonの識別子(変数名として使える文字列)である場合に便利です。
# キーワード引数で指定
student = dict(name="Charlie", id=101, major="Physics")
print(f"作成された辞書: {student}")
# 出力: 作成された辞書: {'name': 'Charlie', 'id': 101, 'major': 'Physics'}
注意点: この方法では、キーを文字列としてクォーテーションで囲む必要がありません(ただし、有効な識別子である必要があります)。
b. キーと値のペアのイテラブルを使う方法
タプルのリストなど、キーと値のペアを持つイテラブルから辞書を作成できます。これは、データがすでにキーと値のペアとしてまとまっている場合に便利です。
# (キー, 値)のタプルのリストから作成
data_list = [("apple", 100), ("banana", 150), ("orange", 120)]
fruits_prices = dict(data_list)
print(f"作成された辞書: {fruits_prices}")
# 出力: 作成された辞書: {'apple': 100, 'banana': 150, 'orange': 120}
# zip()関数と組み合わせて2つのリストから作成
keys = ["red", "green", "blue"]
values = [0xFF0000, 0x00FF00, 0x0000FF]
colors = dict(zip(keys, values))
print(f"作成された辞書: {colors}")
# 出力: 作成された辞書: {'red': 16711680, 'green': 65280, 'blue': 255}
3. 辞書内包表記を使う方法
**辞書内包表記(Dictionary Comprehension)**は、リスト内包表記に似ており、既存のイテラブルから新しい辞書を簡潔に生成する強力な方法です。特に、ループを使って辞書を作成する場合に、コードを非常に短くすることができます。
# リストから平方数の辞書を作成
numbers = [1, 2, 3, 4, 5]
squares_dict = {num: num**2 for num in numbers}
print(f"作成された辞書: {squares_dict}")
# 出力: 作成された辞書: {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
# 既存の辞書を変換する例(値を大文字に変換)
original_dict = {"name": "Alice", "city": "New York"}
upper_values_dict = {k: v.upper() for k, v in original_dict.items()}
print(f"変換された辞書: {upper_values_dict}")
# 出力: 変換された辞書: {'name': 'ALICE', 'city': 'NEW YORK'}
辞書内包表記は、フィルタリング(if文の追加)や、より複雑なロジックを組み込むことも可能です。
まとめ
Pythonで辞書を作成する方法は主に3つあり、それぞれ異なるシナリオで役立ちます。
-
波括弧
{}:-
静的で明確な辞書を直接定義する場合に最も適しています。
-
最も一般的で読みやすい方法です。
-
-
dict()コンストラクタ:-
キーワード引数を使ってシンプルに辞書を作成する場合。
-
キーと値のペアのイテラブル(例:
zip()の結果)から辞書を作成する場合に非常に便利です。
-
-
辞書内包表記:
-
既存のイテラブルを基に、ループ処理と変換を伴って新しい辞書を生成する場合に最適です。
-
コードを簡潔に保ち、効率的に辞書を作成できます。
-
これらの方法を理解し、状況に応じて最適な辞書作成方法を選択することで、Pythonプログラムの記述がより効率的かつPythonicになります。
■プロンプトだけでオリジナルアプリを開発・公開してみた!!
■AI時代の第一歩!「AI駆動開発コース」はじめました!
テックジム東京本校で先行開始。
■テックジム東京本校
「武田塾」のプログラミング版といえば「テックジム」。
講義動画なし、教科書なし。「進捗管理とコーチング」で効率学習。
より早く、より安く、しかも対面型のプログラミングスクールです。
<短期講習>5日で5万円の「Pythonミニキャンプ」開催中。
<月1開催>放送作家による映像ディレクター養成講座
<オンライン無料>ゼロから始めるPython爆速講座

