#16 Pythonで学ぶ辞書型(マップ)の基本
名前と値の組み合わせでデータを管理できる仕組みを「辞書」と呼びます。この記事では、Pythonにおける辞書の基本的な使い方と、実務でよく使う操作を解説します。
辞書を作ってみる
Pythonでは波かっこ{}を使って辞書を作ります。
person = {"name": "太郎", "age": 20}
「キー」(名前)と「値」を:で結び、複数の組をカンマで区切って並べます。
値を取り出す・追加する
print(person["name"]) # 太郎
person["job"] = "学生"
角かっこの中にキーを書くだけで値を取り出せます。存在しないキーに値を代入すると、新しい組が追加されます。
キーが存在するか確認する
存在しないキーにそのままアクセスするとエラーになります。inを使って事前に確認するか、get()を使うと安全です。
if "email" in person:
print(person["email"])
print(person.get("email", "未設定"))
get()は、キーが存在しない場合に指定した既定値を返してくれます。
全てのキーと値を順に処理する
for key, value in person.items():
print(key, value)
キーだけを取り出したい場合はperson.keys()、値だけを取り出したい場合はperson.values()が使えます。
辞書内包表記で新しい辞書を作る
リストと同じように、辞書にも「内包表記」という書き方があります。
scores = {"太郎": 90, "次郎": 60}
passed = {name: score for name, score in scores.items() if score >= 70}
print(passed) # {'太郎': 90}
条件に合う要素だけを絞り込んだ新しい辞書を、簡潔な1行で作れます。
Pythonならではの注意点
辞書のキーには文字列だけでなく、数値やタプルなど「変更できないデータ」であれば使えます。逆にリストのような「変更できるデータ」はキーにできない、というルールを覚えておきましょう。また、Python 3.7以降では辞書は挿入した順序を保持するようになったため、forで順に処理した際の順番も、追加した順番通りになることが保証されています。
ネストした辞書
辞書の値としてさらに辞書を持たせることで、階層構造のあるデータも表現できます。
users = {
"太郎": {"age": 20, "job": "学生"},
"次郎": {"age": 25, "job": "会社員"},
}
print(users["太郎"]["age"]) # 20
まとめ
Pythonの辞書は{}で作り、キーで値を管理します。get()を使った安全な取り出し方や、辞書内包表記、ネストした辞書での階層表現も覚えておきましょう。
本ページはプロモーションを含みます。
参考書籍(PR)
Pythonをもっと学びたい方には「スッキリわかるPython入門 第2版」がおすすめです。
PR
コードを書かずに自動化したい方へ
「学んだけど自分の作業に組み込む時間がない」という方向けに、ダブルクリックで動く Windows専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。
コメント
コメントを投稿