Step 10:辞書でデータを管理しよう

📚 ステップ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

📋 過去のメモ一覧
#artnasekai #学習メモ
LINE