こんにちは!今日はPythonの「辞書(Dictionary)」について解説します。辞書は非エンジニアの方が業務自動化やデータ分析を行う上で、最も役立つデータ構造の一つです。実際の例を交えながら、分かりやすく説明していきますね。
辞書とは?日常で例えると…
辞書は、キーと値のペアを保存するデータ構造です。日本語の辞書を想像してみてください。「単語(キー)」があって、その「意味(値)」が書かれていますよね。Pythonの辞書も同じような仕組みです!
例えば、オフィスの備品管理を考えてみましょう:
office_items = {
"パソコン": 25,
"プリンター": 3,
"ホワイトボード": 5,
"会議机": 10
}
この辞書では、備品名が「キー」で、その数量が「値」となっています。キーを指定することで、対応する値を素早く取り出せるんです!
辞書の基本操作
1. 辞書の作成
辞書は波括弧 {}
を使って作成します:
# 空の辞書を作成
employee_info = {}
# 初期値ありの辞書を作成
employee_info = {
"名前": "山田太郎",
"部署": "営業部",
"社員番号": 12345,
"入社年": 2018
}
これで社員情報を管理する辞書ができました!これは人事システムや社内名簿管理などに活用できますね。
2. 値の取得
辞書から値を取得するには、キーを指定します:
# 社員の名前を取得
name = employee_info["名前"]
print(name) # 結果: 山田太郎
# 部署を取得
department = employee_info["部署"]
print(department) # 結果: 営業部
この機能を使えば、顧客データベースから特定の情報だけを素早く抽出することができます。
3. 値の追加・変更
辞書に新しいキーと値を追加したり、既存の値を変更したりするのも簡単です:
# 新しい情報を追加
employee_info["電話番号"] = "03-1234-5678"
# 既存の情報を更新
employee_info["部署"] = "マーケティング部"
print(employee_info)
# 結果: {'名前': '山田太郎', '部署': 'マーケティング部', '社員番号': 12345, '入社年': 2018, '電話番号': '03-1234-5678'}
この機能は、社員の異動情報や連絡先の更新など、データメンテナンスに便利です。
4. キーの存在確認
特定のキーが辞書に存在するかを確認する方法:
# キーの存在を確認
if "メールアドレス" in employee_info:
print("メールアドレスの情報があります")
else:
print("メールアドレスの情報がありません")
# 結果: メールアドレスの情報がありません
データの欠損チェックなどに使えるテクニックです。例えば顧客リストで必須項目が入力されているか確認する際に便利です。
5. 値の削除
辞書からキーと値のペアを削除する方法:
# 電話番号の情報を削除
del employee_info["電話番号"]
print(employee_info)
# 結果: {'名前': '山田太郎', '部署': 'マーケティング部', '社員番号': 12345, '入社年': 2018}
不要になったデータを整理する際に使います。古いプロジェクト情報など、もう参照しないデータを削除するのに便利です。
辞書の便利なメソッド
Pythonの辞書には、データ操作を効率化する便利なメソッド(関数)が用意されています。
get()メソッド – 安全に値を取得
# get()を使って値を取得(キーが存在しない場合はNoneを返す)
email = employee_info.get("メールアドレス")
print(email) # 結果: None
# デフォルト値を指定することも可能
email = employee_info.get("メールアドレス", "登録なし")
print(email) # 結果: 登録なし
存在しないキーにアクセスしてもエラーにならないため、データ分析時のエラー防止に役立ちます。
keys(), values(), items()メソッド – 辞書の内容を一覧表示
# すべてのキーを取得
all_keys = employee_info.keys()
print(all_keys) # 結果: dict_keys(['名前', '部署', '社員番号', '入社年'])
# すべての値を取得
all_values = employee_info.values()
print(all_values) # 結果: dict_values(['山田太郎', 'マーケティング部', 12345, 2018])
# すべてのキーと値のペアを取得
all_items = employee_info.items()
print(all_items) # 結果: dict_items([('名前', '山田太郎'), ('部署', 'マーケティング部'), ('社員番号', 12345), ('入社年', 2018)])
これらのメソッドは、レポート作成や一覧表示に便利です。例えば、社員情報を一覧表示する際に使えます。
実践的な活用例
例1: 部署別の社員情報管理
# 部署別の社員リスト
departments = {
"営業部": ["山田", "鈴木", "佐藤"],
"経理部": ["田中", "高橋"],
"人事部": ["伊藤", "渡辺", "小林", "中村"]
}
# 特定の部署の社員数を確認
sales_count = len(departments["営業部"])
print(f"営業部の社員数: {sales_count}人") # 結果: 営業部の社員数: 3人
# 新入社員を追加
departments["経理部"].append("加藤")
print(f"経理部のメンバー: {departments['経理部']}") # 結果: 経理部のメンバー: ['田中', '高橋', '加藤']
組織図の管理や人員配置のシミュレーションに使えます。
例2: 売上データの集計
# 月別の売上データ
monthly_sales = {
"1月": 1200000,
"2月": 980000,
"3月": 1350000,
"4月": 1050000,
"5月": 1420000
}
# 合計売上の計算
total_sales = sum(monthly_sales.values())
print(f"合計売上: {total_sales}円") # 結果: 合計売上: 6000000円
# 最高売上月を求める
best_month = max(monthly_sales, key=monthly_sales.get)
print(f"最高売上月: {best_month} ({monthly_sales[best_month]}円)") # 結果: 最高売上月: 5月 (1420000円)
財務データの分析や売上レポートの自動作成に活用できます。
例3: アンケート結果の集計
# アンケート回答(複数回答可)
survey_results = {
"Aさん": ["品質", "価格", "デザイン"],
"Bさん": ["価格", "サポート"],
"Cさん": ["品質", "サポート"],
"Dさん": ["デザイン"],
"Eさん": ["品質", "価格", "デザイン", "サポート"]
}
# 各項目の回答数を集計
category_counts = {
"品質": 0,
"価格": 0,
"デザイン": 0,
"サポート": 0
}
for responses in survey_results.values():
for category in responses:
category_counts[category] += 1
print("アンケート集計結果:")
for category, count in category_counts.items():
print(f"{category}: {count}票")
# 結果:
# アンケート集計結果:
# 品質: 3票
# 価格: 3票
# デザイン: 3票
# サポート: 3票
マーケティング調査の分析や顧客満足度調査の集計に便利です。
辞書の応用:複雑なデータ構造
辞書は、より複雑なデータを扱うための基礎となります。例えば、辞書の中に辞書を入れることもできます:
# 社員の詳細情報
employees = {
"E001": {
"名前": "山田太郎",
"部署": "営業部",
"スキル": ["Excel", "PowerPoint", "英語"],
"評価": {"2021": "A", "2022": "S", "2023": "A"}
},
"E002": {
"名前": "佐藤花子",
"部署": "人事部",
"スキル": ["Word", "Excel", "人事評価"],
"評価": {"2021": "B", "2022": "A", "2023": "A"}
}
}
# 特定の社員の特定年度の評価を取得
rating_2022 = employees["E001"]["評価"]["2022"]
print(f"山田さんの2022年度評価: {rating_2022}") # 結果: 山田さんの2022年度評価: S
# 佐藤さんのスキル一覧
sato_skills = employees["E002"]["スキル"]
print(f"佐藤さんのスキル: {', '.join(sato_skills)}") # 結果: 佐藤さんのスキル: Word, Excel, 人事評価
これは、人事データベースやプロジェクト管理システムで活用できます。
まとめ:辞書を使いこなして業務を効率化しよう
Pythonの辞書は、非エンジニアの方が業務効率化やデータ分析を行う上で非常に強力なツールです。
- キーと値のペアで情報を管理できる
- データへの素早いアクセスが可能
- データの追加・更新・削除が簡単
- 複雑な階層構造のデータも表現できる
辞書を使いこなすことで、Excelでは難しかったデータ分析や、手作業で時間がかかっていた業務の自動化が可能になります。ぜひ、自分の業務に当てはめて辞書の活用方法を考えてみてください!
次回は、さらに実践的なPython活用法について紹介していきます。お楽しみに!