未経験でも気軽に!サブスク型プログラミングスクール【Freeks】
困ってた自分に届けたい話
PHPでは「連想配列」って言ってたけど、Pythonでは「辞書」?
JavaScriptでは「オブジェクト」?……それって全部同じもの?違うの?
最初はその違いがわからなくて、APIから返ってきたレスポンスを読み間違えそうになりました。
指定の値を取り出そうとしても、「user[0]」「user.name」など書き方がバラバラで混乱。
「結局、辞書化ってなに?」
ちゃんと理解しておかないと、中身の意味を間違えて使ってしまうかも…と不安になりました。

この記事は、同じように困っていた方への備忘録兼シェアとして書いています。
辞書化とは「キーと値のセット」にすること
辞書化とは、データを「キー(名前)」と「値(データ)」のペアで管理すること。
これにより、意味のある形でデータを整理できます。
※ 下記の説明コードはPythonです。
配列と辞書の違い
このように配列ではデータの意味が不明確になりがち。
user = ["田中", 28, "エンジニア"]
print(user[0]) # 名前の項目が入っているが、これだけでは見てもわからない
下記のように、辞書化すると読みやすくなります。
キーで意味を伝えられるため、保守性・可読性が大きく向上します。
user = {
"名前": "田中",
"年齢": 28,
"職業": "エンジニア"
}
print(user["名前"]) # キーが「名前」だと"田中"とかが入っているとすぐわかる
辞書化するメリット
① 変数名でデータの意味がすぐわかる
配列では、インデックス番号(0番目、1番目など)でしかアクセスできないため、その値が何を表しているかが不明確です。辞書型にすることで、名前でアクセスできるようになり、読みやすくミスが減るコードになります。
# 配列だと
user = ["田中", 28, "エンジニア"]
print(user[1]) # これは「年齢」だけど、見ただけではわからない
# 辞書化すれば
user = {"名前": "田中", "年齢": 28, "職業": "エンジニア"}
print(user["年齢"]) # 28(意味が明確)
② 値の追加・変更が簡単
キーを指定して値を直接書き換えることができるため、データの更新がシンプルです。
配列だと、インデックスを探して書き換える必要があり、ミスが起こりやすいです。
# 年齢を29歳に更新
user["年齢"] = 29
③ キーを使って素早くデータを探せる
辞書型は、キーを使って直接アクセスするため、検索が高速です。
配列のように「どこにあるかな」と探す必要がありません。
# すぐに「職業」を取得できる
print(user["職業"]) # "エンジニア"
さらに、.get()
を使えば「キーがあるかどうか」のチェックも簡単にできます:
print(user.get("趣味", "情報なし")) # → "情報なし"
④ JSON形式と相性が良く、Web開発に必須
Webアプリケーションでは、APIのリクエストやレスポンスでJSON形式(=辞書化された構造)がよく使われます。そのため、辞書型に慣れておくとフロントエンド⇔バックエンド間のデータのやりとりがスムーズになります。
{
"name": "田中",
"email": "tanaka@example.com"
}
このレスポンスを受け取ったフロント側の処理は、たとえば JavaScript なら下記のコード簡単で指定できます。辞書化されていることで、シンプルかつ直感的に扱えるのが大きなメリットです。
console.log(data.name); // "田中"
各言語の「辞書化」例
言語 | 書き方 | 構造の名前 |
---|---|---|
Python | dict = {"key": "value"} | 辞書(dictionary) |
JavaScript | const obj = { key: "value" } | オブジェクト(object) |
PHP | $arr = ["key" => "value"]; | 連想配列(associative array) |
応用:辞書の中にリスト・辞書を入れることもできる
user = {
"名前": "田中",
"スキル": ["Python", "Django"],
"連絡先": {
"メール": "tanaka@example.com",
"電話": "090-XXXX-XXXX"
}
}

おつかれさまでした!
コメント