【Python】第1章第8回:辞書(dictionary)の基本と実用例
Pythonの辞書(dictionary
)は、キーと値のペアでデータを管理するための強力なデータ型です。本記事では、辞書の基本操作から応用例までを解説します。
0. 記事の概要
この記事を読むメリット
- 辞書の基本操作を習得:キーと値を用いたデータ管理の基礎を学べます。
- 実用的なプログラムを作成:辞書を使った効率的なデータ処理方法を理解できます。
- 柔軟なデータ構造を活用:辞書を使った応用的なデータ操作が可能になります。
この記事で学べること
- 辞書の基本操作(作成、追加、削除、アクセス)
- 辞書の応用例(ネスト、辞書内包表記)
- 辞書を使った実用的なプログラムの作成
1. 辞書の基本操作
1.1 辞書の作成とアクセス
辞書は、波括弧({}
)を使用して作成し、キーを指定して値にアクセスします。
# 辞書の作成とアクセス
person = {"name": "Alice", "age": 25, "city": "Tokyo"}
print(person["name"]) # 出力: Alice
動作解説
- 辞書はキーと値のペアでデータを管理します。
- キーを指定することで、対応する値にアクセスできます(例:
person["name"]
)。
1.2 要素の追加と削除
辞書に要素を追加するには、新しいキーを設定し、削除にはdel
またはpop()
を使用します。
# 要素の追加
person["job"] = "Engineer"
print(person) # 出力: {'name': 'Alice', 'age': 25, 'city': 'Tokyo', 'job': 'Engineer'}
# 要素の削除
del person["age"]
print(person) # 出力: {'name': 'Alice', 'city': 'Tokyo', 'job': 'Engineer'}
removed_job = person.pop("job")
print(removed_job) # 出力: Engineer
動作解説
person["job"] = "Engineer"
: 新しいキー「job」を追加し、その値を設定。del
: 指定したキーを削除します。pop()
: 指定したキーを削除し、その値を返します。
2. 辞書の応用
2.1 ネストされた辞書
辞書の中に辞書を含めることで、階層的なデータを管理できます。
# ネストされた辞書
students = {
"Alice": {"age": 25, "grade": "A"},
"Bob": {"age": 22, "grade": "B"}
}
print(students["Alice"]["grade"]) # 出力: A
動作解説
- ネストされた辞書を使うことで、複雑なデータを一元管理できます。
- 階層を指定して、必要なデータにアクセスします(例:
students["Alice"]["grade"]
)。
2.2 辞書内包表記
辞書内包表記を使えば、簡潔に辞書を生成できます。
# 辞書内包表記
squared_numbers = {x: x**2 for x in range(5)}
print(squared_numbers) # 出力: {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}
動作解説
- 内包表記を使うと、ループ処理を組み込んだ辞書生成が簡単に行えます。
3. 実践例:辞書を使ったプログラム
辞書を使って製品とその価格を管理し、ユーザーからの入力に基づいて価格を表示するプログラムを作成します。
# 製品と価格を管理
products = {"apple": 100, "banana": 80, "cherry": 150}
# 製品名を入力して価格を取得
product_name = input("製品名を入力してください: ")
if product_name in products:
print(f"{product_name}の価格は {products[product_name]} 円です。")
else:
print("指定された製品は存在しません。")
動作解説
- 辞書を使って製品名と価格を管理します。
in
演算子を使用して、指定された製品名が辞書に含まれているか確認します。- 存在する場合は価格を表示し、存在しない場合はエラーメッセージを表示します。
4. 練習問題
以下の課題に挑戦してみましょう。
- 辞書を使用して学生の名前と成績を管理し、平均点を計算するプログラムを作成してください。
- 辞書内包表記を使って、1から10までの整数の平方根を計算する辞書を生成してください。
5. 練習問題の解答と解説
問1の解答例
# 学生の成績を管理
grades = {"Alice": 85, "Bob": 92, "Charlie": 88}
average = sum(grades.values()) / len(grades)
print(f"平均点: {average}")
問2の解答例
# 辞書内包表記で平方根を計算
import math
square_roots = {x: math.sqrt(x) for x in range(1, 11)}
print(square_roots)
6. まとめ
Pythonの辞書の基本操作と応用を学びました。辞書を活用することで、複雑なデータを効率的に管理できます。これらのスキルを活用して、さらに実践的なプログラムに挑戦してください。