📚 ステップ10: 辞書でデータを管理しよう
キーと値のペアでデータを効率的に扱おう!
ステップ9では、文字列操作の基本を学びました。今回は、「辞書(dictionary)」という、キーと値のペアでデータを管理する便利なデータ構造を学びます。
📖 このステップで学ぶこと
・辞書の作成と基本操作
・キーと値の取得
・辞書の値の追加・変更・削除
・辞書のループ処理(items、keys、values)
・辞書を使ったデータ集計
・実践例:カウント、グループ化
🎯 1. 辞書とは何か?
今まで学んだ「リスト」は、番号(インデックス)でデータを管理しました。でも、番号だけでは「何のデータか」がわかりにくいことがあります。
🔰 リストの問題点
❌ リストだけでは管理が大変
# リストで生徒情報を管理
student = ["太郎", 25, "東京"]
# 何番目が何のデータ?覚えにくい!
print(student[0]) # 名前?年齢?
print(student[1]) # これは何?
print(student[2]) # これも何?
※ 画面が小さい場合は、コードブロックを横にスクロールできます
問題点:
・0番目が名前、1番目が年齢、2番目が住所…と覚える必要がある
・コードを見ただけでは何のデータかわからない
・後から見たとき、混乱しやすい
✅ 辞書なら解決!
辞書(dictionary)とは、キー(key)と値(value)のペアでデータを管理するデータ構造です。
📌 辞書の仕組み
辞書は、本物の辞書に似ています:
・キー = 単語(”apple”)
・値 = 意味(”りんご”)
単語(キー)を調べると、すぐに意味(値)がわかります。
プログラムでは:
・キー = データの名前(”name”、”age”など)
・値 = 実際のデータ(”太郎”、25など)
📝 リストと辞書の比較
コード:リストと辞書の違い
# リスト:番号(インデックス)で管理
student_list = ["太郎", 25, "東京"]
print(student_list[0]) # 名前
print(student_list[1]) # 年齢
print(student_list[2]) # 住所
print("---")
# 辞書:名前(キー)で管理
student_dict = {
"name": "太郎",
"age": 25,
"city": "東京"
}
print(student_dict["name"]) # 名前
print(student_dict["age"]) # 年齢
print(student_dict["city"]) # 住所
※ 画面が小さい場合は、コードブロックを横にスクロールできます
実行結果
太郎 25 東京 --- 太郎 25 東京
📌 リストと辞書の使い分け
| データ構造 | 管理方法 | 使いどころ |
| リスト | 番号(インデックス) | 順番が重要なデータ(ランキング、時系列データ) |
| 辞書 | 名前(キー) | 名前で管理したいデータ(商品情報、ユーザー情報) |
📝 2. 辞書の作成
辞書は{ }(波括弧)を使って作ります。
🔰 基本的な作成方法
コード:辞書を作る
# 空の辞書を作成
empty_dict = {}
print(empty_dict)
print(type(empty_dict))
print("---")
# キーと値を指定して作成
person = {
"name": "花子",
"age": 30,
"job": "エンジニア"
}
print(person)
※ 画面が小さい場合は、コードブロックを横にスクロールできます
実行結果
{}
<class 'dict'>
---
{'name': '花子', 'age': 30, 'job': 'エンジニア'}
💡 コードの解説
empty_dict = { }
・{ }は空の辞書を作ります
・type()で確認すると、dict(辞書)型です
person = { “name”: “花子”, “age”: 30, “job”: “エンジニア” }
・{ }の中に、キーと値のペアを書きます
・キー: 値の形式で書きます(コロンで区切る)
・複数のペアは、カンマで区切ります
・キーは文字列(””で囲む)が一般的です
📘 様々な値を格納できる
辞書の値には、どんなデータ型でも使えます。文字列、数値、リスト、さらには辞書も入れられます。
コード:色々なデータ型を値として使う
# 色々なデータ型を値として使える
mixed_dict = {
"name": "太郎", # 文字列
"age": 25, # 整数
"height": 175.5, # 浮動小数点数
"is_student": True, # 真偽値
"hobbies": ["読書", "旅行"], # リスト
"address": { # 辞書の中に辞書
"city": "東京",
"zip": "100-0001"
}
}
print(mixed_dict["hobbies"])
print(mixed_dict["address"]["city"])
※ 画面が小さい場合は、コードブロックを横にスクロールできます
実行結果
['読書', '旅行'] 東京
💡 値の種類
“hobbies”: [“読書”, “旅行”]
・値にリストを使っています
・複数の趣味をリストで管理できます
“address”: { “city”: “東京”, “zip”: “100-0001” }
・値に辞書を使っています(ネスト構造)
・住所情報をまとめて管理できます
mixed_dict[“address”][“city”]
・辞書の中の辞書にアクセスするには、[]を2回使います
・最初の[“address”]でaddress辞書を取得
・次の[“city”]でcityの値を取得
📌 キーのルール
キーに使えるもの:
・文字列(最も一般的)
・数値(整数や浮動小数点数)
・その他の変更不可(イミュータブル)なデータ型
キーの制約:
・キーは重複できません(同じキーは1つだけ)
・後から同じキーで値を設定すると、上書きされます
値に使えるもの:
・どんなデータ型でもOK(制限なし)
📘 実践例:商品データ
コード:商品情報を辞書で管理
# 商品情報を辞書で管理
product = {
"id": "P001",
"name": "ノートパソコン",
"price": 98000,
"stock": 15,
"category": "電子機器",
"tags": ["PC", "仕事", "人気"]
}
print(f"商品名: {product['name']}")
print(f"価格: {product['price']:,}円")
print(f"在庫: {product['stock']}個")
print(f"タグ: {', '.join(product['tags'])}")
※ 画面が小さい場合は、コードブロックを横にスクロールできます
実行結果
商品名: ノートパソコン 価格: 98,000円 在庫: 15個 タグ: PC, 仕事, 人気
💡 実用的なデータ管理
商品情報を辞書で管理すると:
・商品ID、名前、価格などを名前で管理できる
・コードが読みやすくなる
・後から項目を追加しやすい
🔍 3. 辞書の値を取得する
辞書からデータを取り出す方法を学びます。
🔰 [ ]を使って取得
コード:キーを指定して値を取得
person = {
"name": "太郎",
"age": 25,
"city": "東京"
}
# キーを指定して値を取得
print(person["name"])
print(person["age"])
print(person["city"])
※ 画面が小さい場合は、コードブロックを横にスクロールできます
実行結果
太郎 25 東京
💡 [ ]での取得
person[“name”]
・辞書名[キー]の形式で値を取得します
・キーは文字列なので、””で囲みます
・存在するキーを指定すると、対応する値が返されます
⚠️ 存在しないキーはエラーになる
person = {
"name": "太郎",
"age": 25
}
# 存在しないキーを指定するとエラー!
print(person["city"]) # KeyError!
※ 画面が小さい場合は、コードブロックを横にスクロールできます
エラーメッセージ:
KeyError: ‘city’
このエラーは、指定したキー(’city’)が辞書に存在しないことを意味します。
📝 get()メソッドを使う(安全な取得)
get()メソッドを使うと、キーが存在しない場合のエラーを防げます。
コード:get()で安全に取得
person = {
"name": "太郎",
"age": 25
}
# [ ]を使う場合(キーがないとエラー)
# print(person["city"]) # KeyError!
# get()を使う場合(キーがないとNoneを返す)
print(person.get("city"))
# デフォルト値を指定
print(person.get("city", "不明"))
print(person.get("age", 0))
※ 画面が小さい場合は、コードブロックを横にスクロールできます
実行結果
None 不明 25
💡 get()の使い方
person.get(“city”)
・キーが存在すれば、その値を返します
・キーが存在しなければ、Noneを返します
・エラーにならないので安全です
person.get(“city”, “不明”)
・第2引数にデフォルト値を指定できます
・キーが存在しない場合、デフォルト値が返されます
・この例では、”city”がないので”不明”が返されます
person.get(“age”, 0)
・”age”は存在するので、その値25が返されます
・デフォルト値0は使われません
📌 [ ]とget()の使い分け
| 方法 | キーがない場合 | 使いどころ |
| dict[key] | エラーになる | キーが必ず存在するとわかっている時 |
| dict.get(key) | Noneを返す(エラーにならない) | キーが存在するかわからない時 |
| dict.get(key, default) | デフォルト値を返す | キーがない場合の代替値を指定したい時 |
✏️ 4. 辞書の値を追加・変更・削除
辞書は、作成後も自由に値を追加、変更、削除できます。
🔰 値の追加と変更
コード:値を追加・変更する
# 辞書を作成
person = {
"name": "太郎",
"age": 25
}
# 新しいキーと値を追加
person["city"] = "東京"
person["job"] = "エンジニア"
print(person)
print("---")
# 既存の値を変更
person["age"] = 26
print(person)
※ 画面が小さい場合は、コードブロックを横にスクロールできます
実行結果
{'name': '太郎', 'age': 25, 'city': '東京', 'job': 'エンジニア'}
---
{'name': '太郎', 'age': 26, 'city': '東京', 'job': 'エンジニア'}
💡 追加と変更の仕組み
person[“city”] = “東京”
・辞書名[新しいキー] = 値の形式で追加します
・”city”というキーは存在しないので、新しく追加されます
person[“age”] = 26
・”age”というキーは既に存在します
・既存のキーに値を代入すると、上書きされます
・25から26に変更されます
追加と変更の違い:
・同じ書き方(dict[key] = value)で両方できます
・キーが存在しない→追加
・キーが既に存在する→変更(上書き)
📝 値の削除
コード:値を削除する
person = {
"name": "太郎",
"age": 25,
"city": "東京",
"job": "エンジニア"
}
# delで削除
del person["job"]
print(person)
print("---")
# pop()で削除(削除した値を返す)
age = person.pop("age")
print(f"削除した年齢: {age}")
print(person)
※ 画面が小さい場合は、コードブロックを横にスクロールできます
実行結果
{'name': '太郎', 'age': 25, 'city': '東京'}
---
削除した年齢: 25
{'name': '太郎', 'city': '東京'}
💡 削除の方法
del person[“job”]
・delは「削除する」という命令です
・指定したキーと値のペアを削除します
・削除した値は返されません
age = person.pop(“age”)
・pop()は削除と同時に、削除した値を返します
・削除した値を変数ageに代入できます
・削除した値を使いたい場合に便利です
del と pop() の違い:
・del:削除するだけ
・pop():削除して、削除した値を返す
📘 update()で複数の値を追加・更新
コード:複数の値を一度に追加・更新
person = {
"name": "太郎",
"age": 25
}
# 複数の値を一度に追加・更新
person.update({
"age": 26, # 既存の値を更新
"city": "東京", # 新しく追加
"job": "エンジニア" # 新しく追加
})
print(person)
※ 画面が小さい場合は、コードブロックを横にスクロールできます
実行結果
{'name': '太郎', 'age': 26, 'city': '東京', 'job': 'エンジニア'}
💡 update()の便利さ
person.update({ … })
・update()は複数のキーと値を一度に追加・更新できます
・引数として、別の辞書を渡します
・既存のキーがあれば更新、なければ追加されます
・1行ずつ書くより効率的です
🔄 5. 辞書のループ処理
辞書の全てのデータを順番に処理する方法を学びます。
🔰 キーだけを取り出す
コード:キーをループで取り出す
person = {
"name": "太郎",
"age": 25,
"city": "東京"
}
# キーだけをループ
for key in person:
print(key)
print("---")
# keys()メソッドを使う(上と同じ)
for key in person.keys():
print(key)
※ 画面が小さい場合は、コードブロックを横にスクロールできます
実行結果
name age city --- name age city
💡 キーのループ
for key in person:
・辞書をforループで回すと、キーが順番に取り出されます
・変数keyに、”name”、”age”、”city”が順番に入ります
for key in person.keys():
・keys()メソッドを使っても同じ結果です
・明示的に「キーを取り出す」ことを示せます
📝 値だけを取り出す
コード:値だけをループで取り出す
person = {
"name": "太郎",
"age": 25,
"city": "東京"
}
# 値だけをループ
for value in person.values():
print(value)
※ 画面が小さい場合は、コードブロックを横にスクロールできます
実行結果
太郎 25 東京
💡 値のループ
person.values()
・values()メソッドは、辞書の全ての値を返します
・forループで回すと、値だけが順番に取り出されます
・キーは取得されません
📘 キーと値の両方を取り出す(最も重要)
コード:キーと値を同時に取り出す
person = {
"name": "太郎",
"age": 25,
"city": "東京"
}
# items()でキーと値のペアを取得
for key, value in person.items():
print(f"{key}: {value}")
※ 画面が小さい場合は、コードブロックを横にスクロールできます
実行結果
name: 太郎 age: 25 city: 東京
💡 items()の使い方
person.items()
・items()メソッドは、キーと値のペアを返します
・(“name”, “太郎”)、(“age”, 25)、(“city”, “東京”)のようなペアです
for key, value in person.items():
・2つの変数(key, value)で受け取ります
・keyにキーが、valueに値が入ります
・キーと値の両方を使いたい場合に便利です
最もよく使うパターン!
📌 辞書のループメソッドまとめ
| メソッド | 取得できるもの | 使用例 |
| dict.keys() | キーだけ | for key in dict.keys(): |
| dict.values() | 値だけ | for value in dict.values(): |
| dict.items() | キーと値のペア | for key, value in dict.items(): |
📘 実践例:商品リストの表示
コード:商品情報を整形して表示
products = {
"P001": {"name": "ノートPC", "price": 98000},
"P002": {"name": "マウス", "price": 2500},
"P003": {"name": "キーボード", "price": 8500}
}
print("【商品一覧】")
for product_id, info in products.items():
print(f"{product_id}: {info['name']} - {info['price']:,}円")
※ 画面が小さい場合は、コードブロックを横にスクロールできます
実行結果
【商品一覧】 P001: ノートPC - 98,000円 P002: マウス - 2,500円 P003: キーボード - 8,500円
💡 ネストした辞書のループ
この例では、辞書の中に辞書が入っています(ネスト構造)。
for product_id, info in products.items():
・product_idに”P001″、”P002″などのキーが入ります
・infoに各商品の情報(辞書)が入ります
info[‘name’]、info[‘price’]
・infoは辞書なので、さらにキーで値を取得できます
📊 6. 辞書を使ったデータ集計
辞書は、データの集計に非常に便利です。カウント、合計、グループ化など、様々な集計ができます。
📘 例1:カウント(出現回数)
リストの中で、各要素が何回出現するかを数えます。
コード:果物の出現回数を数える
# 果物の出現回数を数える
fruits = ["りんご", "みかん", "りんご", "バナナ", "みかん", "りんご", "ぶどう"]
# 辞書でカウント
fruit_count = {}
for fruit in fruits:
if fruit in fruit_count:
fruit_count[fruit] += 1
else:
fruit_count[fruit] = 1
print(fruit_count)
print("\n【結果】")
for fruit, count in fruit_count.items():
print(f"{fruit}: {count}個")
※ 画面が小さい場合は、コードブロックを横にスクロールできます
実行結果
{'りんご': 3, 'みかん': 2, 'バナナ': 1, 'ぶどう': 1}
【結果】
りんご: 3個
みかん: 2個
バナナ: 1個
ぶどう: 1個
💡 カウントの仕組み
fruit_count = { }
・空の辞書を作ります
・ここにカウント結果を格納します
for fruit in fruits:
・fruitsリストの各要素をループします
if fruit in fruit_count:
・そのfruitが既に辞書に存在するかチェックします
・”りんご”が2回目以降なら、このifがTrueになります
fruit_count[fruit] += 1
・既に存在する場合、カウントを1増やします
・fruit_count[fruit] = fruit_count[fruit] + 1と同じ意味です
else: fruit_count[fruit] = 1
・初めて出現した場合、カウントを1にします
📘 例2:get()を使ったスマートなカウント
get()メソッドを使うと、もっと簡潔に書けます。
コード:get()を使った簡潔な書き方
fruits = ["りんご", "みかん", "りんご", "バナナ", "みかん", "りんご"]
fruit_count = {}
for fruit in fruits:
# get()でデフォルト値0を使う
fruit_count[fruit] = fruit_count.get(fruit, 0) + 1
print(fruit_count)
※ 画面が小さい場合は、コードブロックを横にスクロールできます
実行結果
{'りんご': 3, 'みかん': 2, 'バナナ': 1}
💡 get()を使った技
fruit_count.get(fruit, 0)
・fruitがキーとして存在すれば、その値を返します
・fruitがキーとして存在しなければ、0を返します
fruit_count[fruit] = fruit_count.get(fruit, 0) + 1
・初めての果物:0 + 1 = 1
・2回目以降:現在のカウント + 1
・if-elseを使わずに、1行で書けます
📘 例3:カテゴリ別の合計
コード:カテゴリ別に売上を集計
# 売上データ
sales = [
{"category": "電子機器", "amount": 98000},
{"category": "食品", "amount": 3500},
{"category": "電子機器", "amount": 15000},
{"category": "衣類", "amount": 8500},
{"category": "食品", "amount": 2000},
{"category": "電子機器", "amount": 5500}
]
# カテゴリ別の売上合計
category_total = {}
for sale in sales:
category = sale["category"]
amount = sale["amount"]
category_total[category] = category_total.get(category, 0) + amount
# 結果を表示
print("【カテゴリ別売上】")
for category, total in category_total.items():
print(f"{category}: {total:,}円")
※ 画面が小さい場合は、コードブロックを横にスクロールできます
実行結果
【カテゴリ別売上】 電子機器: 118,500円 食品: 5,500円 衣類: 8,500円
💡 合計の集計
for sale in sales:
・salesリストの各要素(辞書)をループします
category = sale[“category”]
・各売上データからカテゴリを取得します
amount = sale[“amount”]
・各売上データから金額を取得します
category_total[category] = category_total.get(category, 0) + amount
・そのカテゴリの現在の合計に、amountを加算します
・初めてのカテゴリなら、0 + amountになります
📘 例4:グループ化
データをカテゴリ別にグループ化することもできます。
コード:生徒データをクラス別にグループ化
# 生徒データ
students = [
{"name": "太郎", "class": "A組", "score": 85},
{"name": "花子", "class": "B組", "score": 92},
{"name": "次郎", "class": "A組", "score": 78},
{"name": "三郎", "class": "B組", "score": 88}
]
# クラス別にグループ化
class_groups = {}
for student in students:
class_name = student["class"]
if class_name not in class_groups:
class_groups[class_name] = []
class_groups[class_name].append(student)
# 結果を表示
for class_name, members in class_groups.items():
print(f"\n【{class_name}】")
for student in members:
print(f" {student['name']}: {student['score']}点")
※ 画面が小さい場合は、コードブロックを横にスクロールできます
実行結果
【A組】 太郎: 85点 次郎: 78点 【B組】 花子: 92点 三郎: 88点
💡 グループ化の仕組み
class_groups = { }
・空の辞書を作ります
・ここにクラス別のグループを格納します
for student in students:
・studentsリストの各生徒データをループします
class_name = student[“class”]
・各生徒のクラス名を取得します
if class_name not in class_groups:
・そのクラスが初めて出現したかチェックします
・初めての場合、空のリストを作成します
class_groups[class_name] = []
・そのクラス名をキーとして、空のリストを値にします
class_groups[class_name].append(student)
・そのクラスのリストに、生徒データを追加します
結果:
・”A組”というキーに、A組の生徒リストが入ります
・”B組”というキーに、B組の生徒リストが入ります
📝 練習問題
ここまで学んだことを、実際に手を動かして確認しましょう。
問題1:辞書の作成(初級)
📋 問題
自分の情報(名前、年齢、趣味)を辞書に格納し、全ての情報を表示してください。
解答例を見る
コード
my_info = {
"name": "山田太郎",
"age": 25,
"hobby": "読書"
}
for key, value in my_info.items():
print(f"{key}: {value}")
※ 画面が小さい場合は、コードブロックを横にスクロールできます
実行結果
name: 山田太郎 age: 25 hobby: 読書
問題2:値の更新(初級)
📋 問題
辞書{"apple": 100, "banana": 80}に、orangeを追加(価格120円)し、bananaの価格を90円に変更してください。
解答例を見る
コード
prices = {"apple": 100, "banana": 80}
# orangeを追加
prices["orange"] = 120
# bananaを更新
prices["banana"] = 90
print(prices)
※ 画面が小さい場合は、コードブロックを横にスクロールできます
実行結果
{'apple': 100, 'banana': 90, 'orange': 120}
問題3:文字のカウント(中級)
📋 問題
文字列”programming”の中で、各文字が何回出現するかを辞書で集計してください。
解答例を見る
コード
text = "programming"
char_count = {}
for char in text:
char_count[char] = char_count.get(char, 0) + 1
for char, count in char_count.items():
print(f"{char}: {count}回")
※ 画面が小さい場合は、コードブロックを横にスクロールできます
実行結果
p: 1回 r: 2回 o: 1回 g: 2回 a: 1回 m: 2回 i: 1回 n: 1回
問題4:平均点の計算(中級)
📋 問題
生徒の点数辞書{"太郎": 85, "花子": 92, "次郎": 78}から、平均点を計算してください。
解答例を見る
コード
scores = {"太郎": 85, "花子": 92, "次郎": 78}
# 合計を計算
total = sum(scores.values())
# 平均を計算
average = total / len(scores)
print(f"合計: {total}点")
print(f"平均: {average:.1f}点")
※ 画面が小さい場合は、コードブロックを横にスクロールできます
実行結果
合計: 255点 平均: 85.0点
問題5:成績の集計(上級)
📋 問題
以下のテストデータから、科目別の平均点を辞書で集計してください。
[{"name": "太郎", "subject": "数学", "score": 85}, {"name": "花子", "subject": "数学", "score": 92}, {"name": "太郎", "subject": "英語", "score": 78}, {"name": "花子", "subject": "英語", "score": 88}]
解答例を見る
コード
tests = [
{"name": "太郎", "subject": "数学", "score": 85},
{"name": "花子", "subject": "数学", "score": 92},
{"name": "太郎", "subject": "英語", "score": 78},
{"name": "花子", "subject": "英語", "score": 88}
]
# 科目別の合計と人数
subject_data = {}
for test in tests:
subject = test["subject"]
score = test["score"]
if subject not in subject_data:
subject_data[subject] = {"total": 0, "count": 0}
subject_data[subject]["total"] += score
subject_data[subject]["count"] += 1
# 平均を計算して表示
print("【科目別平均点】")
for subject, data in subject_data.items():
average = data["total"] / data["count"]
print(f"{subject}: {average:.1f}点")
※ 画面が小さい場合は、コードブロックを横にスクロールできます
実行結果
【科目別平均点】 数学: 88.5点 英語: 83.0点
問題6:在庫管理システム(上級)
📋 問題
商品の在庫を管理する辞書を作り、商品の追加、在庫の増減、在庫確認ができる関数を作成してください。
解答例を見る
コード
# 在庫辞書
inventory = {}
def add_product(name, quantity):
"""商品を追加"""
inventory[name] = inventory.get(name, 0) + quantity
print(f"{name}を{quantity}個追加しました")
def use_product(name, quantity):
"""商品を使用"""
if name not in inventory:
print(f"エラー: {name}は在庫にありません")
return
if inventory[name] < quantity:
print(f"エラー: {name}の在庫が不足しています")
return
inventory[name] -= quantity
print(f"{name}を{quantity}個使用しました")
def show_inventory():
"""在庫一覧を表示"""
print("\n【在庫一覧】")
for name, quantity in inventory.items():
print(f"{name}: {quantity}個")
# テスト
add_product("りんご", 10)
add_product("みかん", 15)
add_product("りんご", 5)
use_product("りんご", 3)
use_product("バナナ", 2)
show_inventory()
※ 画面が小さい場合は、コードブロックを横にスクロールできます
実行結果
りんごを10個追加しました みかんを15個追加しました りんごを5個追加しました りんごを3個使用しました エラー: バナナは在庫にありません 【在庫一覧】 りんご: 12個 みかん: 15個
🎯 このステップのまとめ
✅ 学んだこと
✓ 辞書はキーと値のペアでデータを管理する
✓ { }で辞書を作成できる
✓ dict[key]で値を取得・設定できる
✓ get()で安全に値を取得できる
✓ items()でキーと値を同時にループできる
✓ 辞書を使ってデータの集計ができる
✓ カウント、グループ化など実践的な処理ができる
💡 次のステップに進む前に確認
以下のことができるようになったか確認しましょう:
□ 辞書を作成できる
□ キーを指定して値を取得できる
□ 辞書をループ処理できる
□ get()メソッドを使える
□ 辞書でデータを集計できる
これらができたら、次のステップに進みましょう!
❓ よくある質問
Q1: リストと辞書はどう使い分けますか?
A: 順番が重要ならリスト、名前(キー)で管理したいなら辞書を使います。
例えば、ランキング→リスト、商品情報→辞書といった感じです。
Q2: 同じキーを2回設定するとどうなりますか?
A: 後から設定した値で上書きされます。
辞書では各キーは1つだけ存在します。
Q3: [ ]とget()の違いは何ですか?
A: [ ]はキーがないとエラーになります。
get()はキーがなくてもNone(またはデフォルト値)を返すので安全です。
Q4: 辞書の順番は保証されますか?
A: Python 3.7以降では、挿入順が保持されます。
ただし、順番に依存するコードは避けた方が安全です。
Q5: 辞書の中に辞書を入れられますか?
A: はい、辞書の値にはどんなデータ型でも使えるので、辞書の中に辞書やリストを入れることができます(ネスト構造)。
学習メモ
Pythonデータ分析入門 - Step 10