Python

【Python】第1章第8回:辞書(dictionary)の基本と実用例

Pythonの辞書(dictionary)は、キーと値のペアでデータを管理するための強力なデータ型です。本記事では、辞書の基本操作から応用例までを解説します。

0. 記事の概要

この記事を読むメリット

  • 辞書の基本操作を習得:キーと値を用いたデータ管理の基礎を学べます。
  • 実用的なプログラムを作成:辞書を使った効率的なデータ処理方法を理解できます。
  • 柔軟なデータ構造を活用:辞書を使った応用的なデータ操作が可能になります。

この記事で学べること

  • 辞書の基本操作(作成、追加、削除、アクセス)
  • 辞書の応用例(ネスト、辞書内包表記)
  • 辞書を使った実用的なプログラムの作成

1. 辞書の基本操作

1.1 辞書の作成とアクセス

辞書は、波括弧({})を使用して作成し、キーを指定して値にアクセスします。

# 辞書の作成とアクセス
person = {"name": "Alice", "age": 25, "city": "Tokyo"}
print(person["name"])  # 出力: Alice
動作解説
  1. 辞書はキーと値のペアでデータを管理します。
  2. キーを指定することで、対応する値にアクセスできます(例: 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
動作解説
  1. person["job"] = "Engineer": 新しいキー「job」を追加し、その値を設定。
  2. del: 指定したキーを削除します。
  3. pop(): 指定したキーを削除し、その値を返します。

2. 辞書の応用

2.1 ネストされた辞書

辞書の中に辞書を含めることで、階層的なデータを管理できます。

# ネストされた辞書
students = {
    "Alice": {"age": 25, "grade": "A"},
    "Bob": {"age": 22, "grade": "B"}
}
print(students["Alice"]["grade"])  # 出力: A
動作解説
  1. ネストされた辞書を使うことで、複雑なデータを一元管理できます。
  2. 階層を指定して、必要なデータにアクセスします(例: 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}
動作解説
  1. 内包表記を使うと、ループ処理を組み込んだ辞書生成が簡単に行えます。

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("指定された製品は存在しません。")
動作解説
  1. 辞書を使って製品名と価格を管理します。
  2. in演算子を使用して、指定された製品名が辞書に含まれているか確認します。
  3. 存在する場合は価格を表示し、存在しない場合はエラーメッセージを表示します。

4. 練習問題

以下の課題に挑戦してみましょう。

  1. 辞書を使用して学生の名前と成績を管理し、平均点を計算するプログラムを作成してください。
  2. 辞書内包表記を使って、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の辞書の基本操作と応用を学びました。辞書を活用することで、複雑なデータを効率的に管理できます。これらのスキルを活用して、さらに実践的なプログラムに挑戦してください。