商品名と値段、ユーザー名と年齢、都市名と気温──現実のデータは「2つの情報がペアになっている」ことがほとんど。これを変数1つ1つで管理すると、すぐにコードがゴチャゴチャになってしまいます💦
そんなときに大活躍するのが、Pythonの辞書(dict)です。キーと値のペアをまとめて1つの変数で扱えるようになり、コードの見通しが一気にクリアに✨ 「あれ?このデータどこに入れたっけ?」という迷子状態から卒業して、データを自由自在に操れるプログラマーへの一歩を踏み出しましょう🚀
辞書とは、キー(key)と値(value)がペアになったデータを、複数まとめて持てる入れ物のこと。リストと同じく「複数の値をまとめる」役割を持ちますが、決定的な違いがあります。
イメージは紙の辞書とまったく同じ。「単語(キー)」を引けば「意味(値)」が出てくる──その感覚をそのままPythonに持ち込んだのが、このdictという仕組みです📚
たとえば「りんご=120円、バナナ=300円、いちご=450円」という価格表を、辞書ならたった1つの変数で表現できます。どの商品といくらが紐付いているか一目瞭然になるのが、辞書の真骨頂です💡
辞書の作成には波括弧{}を使います。中に「キー: 値」をカンマで区切って並べるだけ。
price_list = {
"りんご": 120,
"バナナ": 300,
"いちご": 450
}
print(price_list)
# → {'りんご': 120, 'バナナ': 300, 'いちご': 450}
辞書から値を取り出すときは、変数名[キー]と書きます。リストでインデックス番号を指定するのと似た感覚です。
print(price_list["バナナ"])
# → 300
「バナナっていくらだっけ?」と思ったらprice_list["バナナ"]と書くだけ。コードを読む人にとっても、何を取り出そうとしているのかが直感的に伝わります🍌
辞書の便利なところは、追加と更新がほぼ同じ書き方でできること。「変数名[キー] = 値」と書くだけです。
price_list["トマト"] = 340
print(price_list)
# → {'りんご': 120, 'バナナ': 300, 'いちご': 450, 'トマト': 340}
存在しないキーを指定すると、新しいペアとして追加されます🆕
price_list["いちご"] = 350 # 今日は50円引き!
print(price_list["いちご"])
# → 350
すでに存在するキーを指定すると、値が上書きされます。「今日はセールだから値段を変えたい」というケースもこれ1行でOK🏷️
追加と更新が同じ構文なので、覚えることが少なく、コードも読みやすくなります。Pythonの設計の美しさが光る部分ですね✨
| 演算子「在庫管理用の辞書」と「新入荷の辞書」を1つにまとめたいときなど、辞書同士を結合したい場面はよくあります。やり方は2通り覚えておきましょう。
update()メソッドを使う方法x = {"りんご": 120, "バナナ": 300}
y = {"いちご": 450, "メロン": 800}
x.update(y)
print(x)
# → {'りんご': 120, 'バナナ': 300, 'いちご': 450, 'メロン': 800}
x.update(y)と書くと、xにyの中身が追加されます。xそのものが変更される点に注意⚠️
|(パイプ)演算子を使う方法(Python 3.9以上)z = x | y
print(z)
# → {'りんご': 120, 'バナナ': 300, 'いちご': 450, 'メロン': 800}
こちらは新しい辞書zを作成するイメージ。元のxとyはそのまま残ります。スッキリ書けて読みやすい一方、Python 3.9以上が必要なので環境バージョンには注意してください📌
len()関数「今、辞書に何個のペアが入ってる?」を知りたいときは、len()関数が使えます。
z = {"りんご": 120, "バナナ": 300, "いちご": 450, "メロン": 800, "トマト": 340}
print(len(z))
# → 5
リストと同じ感覚で要素数を取得できるので、覚えやすいですね。ループ処理の前に「データ件数を確認したい」ときによく使います🧮
辞書を使いこなせるようになると、こんな場面でコードが劇的に短くなります。
特にAPI連携やJSONを扱う場面では、辞書の知識が必須スキルになります。今のうちにしっかり手に馴染ませておきましょう🛠️
動画と合わせて1冊手元に置くと、辞書だけでなく「Pythonでデータをどう扱うか」の全体像が見えてきます📖
変数・リスト・辞書といった基礎データ構造を、対話形式で図解多めに学べる入門書。「キーと値ってなんで分けるの?」という素朴な疑問もスッキリ解消できます。
リスト・タプル・辞書・セットといった主要なデータ構造を順序立てて学べる王道書。違いと使い分けが頭の中で整理されます。
辞書内包表記、collectionsモジュールのdefaultdict・Counterなど「辞書を超強化する」テクニックが満載。日々のコードがグッとPythonらしくなります📈
辞書の知識はpandasのDataFrame操作にも直結します。実データの加工・集計を学ぶことで、辞書を使う「目的」が明確になり、理解が立体的になります。
「辞書のキーを安全に取り出す方法」「dictとdataclassの使い分け」など、現場で本当に効くノウハウが90項目に凝縮。中級から上級への確かな足がかりになります。
「順番に意味があるならリスト、ラベル(名前)で取り出したいなら辞書」と覚えるとシンプルです。たとえば「テストの点数を入力順に並べたい」ならリスト、「教科ごとの点数を管理したい」なら辞書がぴったり📚
文字列がもっとも一般的ですが、数値やタプルも使えます。ただしリストや辞書のような「変更可能なオブジェクト」はキーにできません。これは辞書が高速に値を引くために、キーが「変わらない」前提で設計されているためです🔐
price_list["存在しないキー"]のように書くとKeyErrorが発生します。エラーを避けたい場合はget()メソッドを使うのがおすすめ。price_list.get("キー", "デフォルト値")と書くと、キーがなくてもデフォルト値が返ってきます🛡️
for文と組み合わせると簡単です。for key, value in price_list.items():と書けば、キーと値をペアで取り出しながらループ処理ができます。.keys()でキーだけ、.values()で値だけを取り出すことも可能です🔄
Python 3.7以降は、挿入した順番が保たれることが言語仕様として保証されています。それ以前のバージョンでは順番が保証されなかったため、古いコードを見るときは注意が必要です。基本的に最新環境を使っていれば、安心して順序を当てにできます✅
辞書(dict)は、キーと値のペアでデータをまとめるPythonの代表的なデータ構造です。作成は{}、取り出しは[]、追加・更新は変数[キー] = 値──たったこれだけのルールを覚えれば、データ管理が驚くほどラクになります🎉
まずは身近なデータ(家計簿、勉強記録、好きな本のリストなど)を辞書化してみるのがおすすめ。手を動かすうちに、「これは辞書で書いた方がスッキリするな」という感覚が自然と身についてきます🌱
気づいたとき、あなたのコードは「ただ動くコード」から「データ構造を意識した、読みやすいコード」へと進化しているはずです🌟 今日からさっそく、辞書を使い倒していきましょう!