辞書(dict)を一言で表すと「ラベル付きの引き出し」
プログラミングで複数のデータを管理する際、多くの方が最初に学ぶのが「リスト(配列)」です。
リストはデータを順番に並べて保持するため、data[0]、data[1]のように、「0番目」「1番目」という場所(番号)でデータを呼び出しますよね。
でもこれ、「2番目って商品名だっけ?価格だっけ?」と悩みませんか?私はよく間違えてしまうことがありました。
ここで登場するのが「辞書(dict)」です。
辞書は、番号ではなく「キー(ラベル名)」でデータを管理します。
- リストのイメージ: 番号だけが振られたコインロッカー(0番、1番、2番…)
- 辞書のイメージ: 「商品名」「価格」「在庫」といったラベルが貼られた整理棚
「価格」というラベルの引き出しを開ければ、中身の金額(値:バリュー)を迷わず取り出すことができます。
Excelで言うなら、1行目の項目名(ヘッダー)を見てデータを探す感覚や、VLOOKUP関数に近いです。
実際のコードで比較してみよう(リスト vs 辞書)
実務で頻出する「商品データ」を例に、書き方の違いを確認してみましょう。
▼ リストの場合(可読性に不安が残る書き方)
# 何番目にどの情報が入っているかを常に把握しておく必要がある
product_list = ["P001", "高機能マウス", 3500]
print(product_list[1])
# 出力結果: 高機能マウス
# ※データの並び順が変わると予期せぬ不具合の原因になります
▼ 辞書の場合(意図が明確で安全な書き方)
# { "キー(ラベル)": 値(中身) } のペアで記述します
product_dict = {
"id": "P001",
"name": "高機能マウス",
"price": 3500
}
# キー「name」を指定して取り出す
print(product_dict["name"])
# 出力結果: 高機能マウス
# キー「price」を指定して取り出す
print(product_dict["price"])
# 出力結果: 3500
いかがでしょうか?
product_dict[“price”] と書いてあれば、誰が見ても「価格を取り出しているんだな」と分かりますよね。
このように誰が見ても直感的に把握できる状態が「可読性が高いコード」となります。
辞書を使いこなす基本操作(追加・修正)
実務でよく利用するデータの「追加」と「更新」も、直感的な構文で行うことができます。
# 1. データの準備
staff_data = {"name": "佐藤", "dept": "営業部"}
# 2. 新しいデータを追加する(新しいキーを指定して代入)
staff_data["age"] = 28
print(staff_data)
# 出力結果: {'name': '佐藤', 'dept': '営業部', 'age': 28}
# 3. 既存のデータを更新する(既存のキーを指定して再代入)
staff_data["dept"] = "人事部"
print(staff_data)
# 出力結果: {'name': '佐藤', 'dept': '人事部', 'age': 28}
実務での応用パターン(リスト×辞書の組み合わせ)
さてここからが本番です。実際の業務では、データは1件だけではありませんよね。
そうした場面では、「リストの中に複数の辞書を格納する構造」を活用します。
この構造を理解すると、CSVファイルの読み込みやAPIから取得したデータの集計もスムーズに処理できるようになります。
# 社員名簿(辞書を要素に持つリスト構造)
employees = [
{"id": 101, "name": "佐藤", "sales": 500000},
{"id": 102, "name": "田中", "sales": 850000},
{"id": 103, "name": "鈴木", "sales": 300000}
]
total_sales = 0
for person in employees:
# person["sales"] で目的の項目を確実に指定
total_sales += person["sales"]
print(f"{person['name']}さんの売上: {person['sales']}円")
print("-" * 20)
print(f"売上合計: {total_sales}円")
実行結果:
佐藤さんの売上: 500000円
田中さんの売上: 850000円
鈴木さんの売上: 300000円
--------------------
売上合計: 1650000円
もしこれがリスト管理だったら、person[2]のように番号指定になり、データの並び順が変わった瞬間に集計が狂ってしまいます。
しかし辞書はインデックス番号(例:person[2])による指定を行わないため、データの列順が将来的に変更されても集計ロジックが壊れる心配がありません。
おわりに
「辞書」の概念、少しだけ親近感が湧きましたか?
- 辞書は「ラベル付きの整理棚」
- 番号ではなく「キー名」で取得するため、並び順の変更に強い
- Excelのテーブル見出しを参照する感覚で直感的に扱える
プログラミングを勉強していると、「全部暗記しなきゃ」と焦ってしまうかもしれません。でも、まずは「後から見返しても意味がわかるコード」を書くために、辞書を使ってみてください!
Pythonの本は種類が多すぎて、業務効率化に使えるのか見分けるのが大変ですよね。実務自動化に5年以上携わってきた私が、「デスクワークの自動化に即戦力になった本」を厳選して紹介します。失敗しない1冊を見つけたい方は、ぜひ参考にしてみてください。

コメント