【Python入門】リスト管理で消耗していませんか?辞書(dict)でコードの可読性を劇的に高めるデータ管理術

【作業自動化】Python
スポンサーリンク

辞書(dict)を一言で表すと「ラベル付きの引き出し」

プログラミングで複数のデータを管理する際、多くの方が最初に学ぶのが「リスト(配列)」です。

リストはデータを順番に並べて保持するため、data[0]、data[1]のように、「0番目」「1番目」という場所(番号)でデータを呼び出しますよね。

でもこれ、「2番目って商品名だっけ?価格だっけ?」と悩みませんか?私はよく間違えてしまうことがありました。

ここで登場するのが「辞書(dict)」です。

辞書は、番号ではなく「キー(ラベル名)」でデータを管理します。

  • リストのイメージ: 番号だけが振られたコインロッカー(0番、1番、2番…)
  • 辞書のイメージ: 「商品名」「価格」「在庫」といったラベルが貼られた整理棚

「価格」というラベルの引き出しを開ければ、中身の金額(値:バリュー)を迷わず取り出すことができます。

Excelで言うなら、1行目の項目名(ヘッダー)を見てデータを探す感覚や、VLOOKUP関数に近いです。

【作業自動化】Pythonの記事を見る 

実際のコードで比較してみよう(リスト 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の記事を見る


Pythonの本は種類が多すぎて、業務効率化に使えるのか見分けるのが大変ですよね。実務自動化に5年以上携わってきた私が、「デスクワークの自動化に即戦力になった本」を厳選して紹介します。失敗しない1冊を見つけたい方は、ぜひ参考にしてみてください。

この記事を書いた人
ぐー

手取り15万円の会社員でしたが、年間100万円以上節約していました。
株式投資で年間360万円以上投資し、iDeCoも併用しています。
総資産はアッパーマス層に到達しました。
資格は日商簿記3級を持っています。

このブログでは、私が実践してきた節約術やリアルな資産運用、生産性を高めるITスキルについて発信しています。

生活を豊かにするため、高配当株投資で年間配当金60万円をめざしています。
現在の年間配当金は30万円ほどです。

ゲーム・漫画・アニメなどが好きです。
一緒に資産形成をがんばりましょう!
よろしくお願いします!

ぐーをフォローする
【作業自動化】PythonITスキル
スポンサーリンク
ぐーをフォローする

コメント

タイトルとURLをコピーしました