更新:2024/09/16
Pythonの辞書型(dictionary)の基本的な操作・ネストされた辞書・例題について


はるか
Pythonの辞書について話そう。

ふゅか
いいね!キーと値のペアでデータを管理できるから、とても便利よね!
目次
1. 辞書とは
Pythonの辞書(dictionary
)は、キー(key)と値(value)のペアを持つデータ構造です。辞書は他の言語で言う「連想配列」や「ハッシュマップ」と同じような役割を果たします。以下では、Pythonの辞書の基本的な操作とその特徴について解説します。
1.1. 辞書の定義
辞書は、中括弧 {}
で囲んでキーと値をコロン :
で結んだ形で定義します。
# 辞書の定義例
student = {
"name": "ExE",
"age": 20,
"grade": "A"
}
この例では、"name"
, "age"
, "grade"
がキーで、それぞれ "ExE"
, 20
, "A"
が値になっています。
2. 辞書の操作
2.1. 値の取得
辞書からキーを使って値を取得するには、キーを指定してアクセスします。
# 値の取得
name = student["name"] # "ExE" が取得される
2.2. 値の更新・追加
既存のキーの値を更新したり、新しいキーを追加したりすることができます。
# 値の更新
student["age"] = 21 # age の値が 21 に更新される
# 新しいキーと値の追加
student["major"] = "Physics" # 新たに "major" キーが追加され、値は "Physics"
2.3. キーの削除
del
文を使って特定のキーとその値を辞書から削除できます。
# キーと値の削除
del student["grade"] # "grade" キーが辞書から削除される
2.4. 辞書のメソッド
Pythonの辞書には便利なメソッドがいくつか用意されています。
keys()
: 辞書のすべてのキーを取得します。values()
: 辞書のすべての値を取得します。items()
: 辞書のすべてのキーと値のペアを取得します。
# keys, values, items の例
keys = student.keys() # dict_keys(['name', 'age', 'major'])
values = student.values() # dict_values(['Alice', 21, 'Physics'])
items = student.items() # dict_items([('name', 'Alice'), ('age', 21), ('major', 'Physics')])

はるか
keys(), values(), items() などのメソッドが用意されている。これらを使ってキーだけ、値だけ、または両方を取得できる。

ふゅか
それらを使えば、forループで辞書の内容を効率的に処理できるわね。
3. 辞書の応用例
3.1. 辞書を使ったループ
辞書のキーや値に対してループ処理を行うこともできます。
# 辞書のすべてのキーと値をループで処理
for key, value in student.items():
print(f"{key}: {value}")
3.2. get() メソッド
辞書の値を取得する際、キーが存在しない場合にはエラーが発生しますが、get()
メソッドを使うと、キーが存在しない場合にデフォルトの値を返すことができます。
# キーが存在しない場合にデフォルト値を返す
major = student.get("major", "Unknown") # 存在すれば "Physics", 存在しなければ "Unknown" を返す

はるか
get() メソッドはキーが存在しない場合にデフォルト値を返す。エラーを防げる。

ふゅか
ネストされた辞書もすごく便利。たとえば、学生の年齢や成績をさらに辞書で管理できるよ!
3.3. ネストされた辞書
辞書の値として、さらに辞書を持つこともできます。これをネストされた辞書といいます。
# ネストされた辞書の例
students = {
"Alice": {"age": 20, "grade": "A"},
"Bob": {"age": 22, "grade": "B"}
}
# ネストされた辞書へのアクセス
alice_age = students["Alice"]["age"] # 20 が取得される
4. 辞書の例題
4.1. 例題 1:辞書の値の更新
次の辞書
fruit_prices
には、果物の名前をキー、価格を値として保持しています。キーが “banana” の値を 10 増加させて、更新された辞書を表示してください。fruit_prices = {
"apple": 100,
"banana": 50,
"orange": 70
}
期待される出力:
{'apple': 100, 'banana': 60, 'orange': 70}
解答の手順:
- キー “banana” の値にアクセスする。
- 値を 10 増加させる。
- 辞書の値を更新して出力する。
解答:
fruit_prices = {
"apple": 100,
"banana": 50,
"orange": 70
}
fruit_prices["banana"] += 10
print(fruit_prices)
4.2. 例題 2:平均点の計算
辞書
student_scores
にある学生の点数を使って、平均点を計算して出力してください。student_scores = {
"MoM": 85,
"EoE": 78,
"ToE": 92
}
期待される出力:
平均点: 85.0
解答の手順:
- 辞書の値(点数)を取得する。
- 点数の合計を計算する。
- 合計を辞書の項目数で割り、平均点を計算する。
- 平均点を出力する。
解答:
student_scores = {
"MoM": 85,
"EoE": 78,
"ToE": 92
}
average_score = sum(student_scores.values()) / len(student_scores)
print("平均点:", average_score)
4.3. 例題 3:新しい辞書の作成
次の辞書
city_population
から、人口が 1,000,000 以上の都市のみを新しい辞書に格納し、出力してください。city_population = {
"Tokyo": 14000000,
"Osaka": 8800000,
"Nagoya": 2300000,
"Fukuoka": 1500000,
"Kyoto": 800000
}
期待される出力:
{'Tokyo': 14000000, 'Osaka': 8800000, 'Nagoya': 2300000, 'Fukuoka': 1500000}
解答の手順:
- 辞書の各項目をループで回す。
- 条件(人口が 1,000,000 以上)に一致する項目を新しい辞書に追加する。
- 新しい辞書を出力する。
解答:
city_population = {
"Tokyo": 14000000,
"Osaka": 8800000,
"Nagoya": 2300000,
"Fukuoka": 1500000,
"Kyoto": 800000
}
large_cities = {city: population for city, population in city_population.items() if population >= 1000000}
print(large_cities)
4.4. 例題 4:在庫の追加
辞書
inventory
には商品と在庫数が記録されています。この辞書に “pen” をキーに持ち、在庫数 50 の項目を追加してください。inventory = {
"notebook": 120,
"pencil": 85,
"eraser": 40
}
期待される出力:
{'notebook': 120, 'pencil': 85, 'eraser': 40, 'pen': 50
解答の手順:
- キー “pen” と値 50 を辞書に追加する。
- 更新された辞書を出力する。
解答:
inventory = {
"notebook": 120,
"pencil": 85,
"eraser": 40
}
inventory["pen"] = 50
print(inventory)
4.5. 例題 5:キーの変換
次の辞書
prices
から、すべてのキーを取得してリスト形式で出力してください。prices = {
"apple": 100,
"banana": 60,
"cherry": 200
}
期待される出力:
['apple', 'banana', 'cherry']
解答の手順:
- 辞書のキーを取得する。
- キーをリストに変換する。
- リストを出力する。
解答:
prices = {
"apple": 100,
"banana": 60,
"cherry": 200
}
keys_list = list(prices.keys())
print(keys_list)
check
Pythonの基本から応用まで、幅広くカバーする記事を公開中です。学習のポイントや実践的なコード例を通じて、Pythonの魅力と実用性を深く理解することができます。ぜひ、こちらの記事で気になる記事を見つけてください!
PR