#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専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。

コメント

このブログの人気の投稿

#25 Rustで学ぶAI API(ChatGPT等)の呼び出し方の基本

#8 C++で学ぶ文字列操作の基本

#16 TypeScriptで学ぶ辞書型(マップ)の基本