【Python第7回】辞書(dict)とセットの活用法
第3回で学んだリストより高度なデータ配列を学びます。キーと値のペアでデータを格納する「辞書(dict)」と、重複した値を自動で防いでくれる「セット(set)」の仕組みを身につけましょう。
1. キーと値のペアで管理する「辞書(dict)」
リスト(`list`)は `[0]` や `[1]` のように「インデックス番号」で中身を管理しましたが、インデックス番号では「その値が何を意味するデータなのか」が分かりづらいという弱点があります。
この問題を解消するのが `辞書(dict型)` です。辞書は、インデックス番号の代わりに「名前(キー:Key)」を自分で用意し、それに対する「値(バリュー:Value)」をペアにして中身を紐付けます。波括弧 `{ }` で囲み、`キー : 値` をカンマ区切りで列挙して作成します。
2. 重複した値を許さない「セット(set:集合)」
もうひとつの重要なデータ構造が `セット(set型)` です。こちらも波括弧 `{ }` を使って定義しますが、辞書と違ってキーはなく、値だけを羅列します。
セットの最大の特徴は、**「重複した要素を絶対に持てない」**という特性です。同じ要素が追加されても自動的に1つとして無視されます。また、要素には「順番」という概念がなく、インデックス番号による取り出しはできません。
3. 辞書とセットを操作するコード
以下のコードは、辞書データのアクセス・値の追加、および重複登録を防ぐセットの挙動を示すコード例です。
# 1. 辞書の定義と取得 user = { "name": "山田", "email": "yamada@example.com", "age": 20 } print(user["name"]) # キー指定で「山田」が表示される # 2. 辞書の新規追加・変更 user["age"] = 21 # age の値を更新 user["country"] = "JP" # 新規キーを追加 print(user) # 3. セットの定義と重複の自動排除 unique_numbers = {1, 2, 2, 3, 3, 3} print(unique_numbers) # 重複が消え {1, 2, 3} と表示される
📌 空の定義にまつわるエラーの罠
空の辞書を作る時は `empty_dict = {}` と書きます。しかし、空のセットを作る時に `empty_set = {}` と書くと、Pythonはそれを「空の辞書」と解釈してしまいます。空のセットを作成する際は、必ず **`empty_set = set()`** という書き方をする必要があります。
Pythonのデータ型において、キー(Key)と値(Value)をペアにして関連付けて管理する、他の言語では連想配列やマップと呼ばれるデータ構造型名は何でしょうか?(英小文字4文字で答えてください)
※この問題の解答と解説は、ページ最下部(まとめの前)に掲載しています。
5. まとめと次回予告
第7回の講義はお疲れ様でした!今回の重要ポイントを振り返りましょう。
- 辞書(dict)はインデックス番号の代わりに任意の文字列などのキーを使ってデータを紐付ける。
- セット(set)は値のみを羅列して定義し、重複した要素を一切持てない集合データ。
- 空のセットを作る時は `{}` ではなく `set()` を用いる必要がある。
次回(第8回)は、他の人が書いたファイルやPythonに標準搭載されているライブラリファイルをロードして利用する「モジュールと標準ライブラリ」について学びます。お楽しみに!
📖 Pythonの基礎を全10回でマスターする
🔑 第7回 理解度チェックの解答と解説
【解説】
正解は **`dict`** です。
`type(user)` を実行すると `