似ているようで実は違う?JavaScriptのオブジェクトとPythonの辞書を徹底比較!
こんにちは。ゆうせいです。
Pythonを学んだ後にJavaScriptを触ったり、その逆の経験をしたりすると、「あれ、この書き方、どっちの言語だっけ?」と混乱することがありますよね。
特に、複数のデータを名前(キー)とセットで管理する書き方は、両方の言語でとてもよく似ているため、新人エンジニアの方がつまずきやすいポイントの一つです。
今回は、Pythonの「辞書(dict)」とJavaScriptの「オブジェクト(Object)」という、そっくりさんな二つの共通点と、知っておくべき大事な相違点をスッキリ整理していきましょう!
まずは共通点:そっくりな基本思想
何よりもまず、一番大切な共通点は、両者が「キー」と「値」のペアでデータを格納する、キーバリュー型のデータ構造であるという点です。
これは、キャラクターのプロフィールシートのようなものをイメージしてください。「名前」「レベル」「持ち物」といった項目(キー)に、具体的なデータ(値)を書き込んでいく。このデータを管理するための基本的な考え方は、PythonでもJavaScriptでも全く同じです。
実際にコードを見比べてみても、そのそっくり具合がよく分かります。
Pythonの辞書
player = {
"name": "勇者",
"level": 10,
"items": ["剣", "盾"]
}
print(player["name"]) # "勇者"
JavaScriptのオブジェクト
let player = {
name: "勇者",
level: 10,
items: ["剣", "盾"]
};
console.log(player.name); // "勇者"
基本的な形がほとんど同じなので、どちらかの言語を知っていれば、もう片方もすぐに理解できますね。
ここが違う!注目すべき4つの相違点
基本的な考え方は同じですが、悪魔は細部に宿ります。文法や言語内での立ち位置に、いくつか重要な違いがあるので見ていきましょう。
1. キーの書き方
一番よく間違えるのが、キーの書き方です。
- Python: キーが文字列の場合、必ず引用符(
"or')で囲む必要があります。 - JavaScript: キーがプログラムの変数名として使える文字(スペースやハイフンなどを含まない)の場合、引用符を省略できます。上の例の
nameやlevelがそうですね。
もちろん、JavaScriptでも "player name" のようにスペースを含むキーを使いたい場合は、引用符で囲む必要があります。
2. 値へのアクセス方法
値を取り出す方法にも違いがあります。
- Python:
player["name"]のように、角括弧[]にキーの文字列を入れてアクセスします。 - JavaScript: Pythonと同じ角括弧
player["name"]でのアクセスに加えて、キーが引用符なしで書けるものであれば、ドット.を使ってplayer.nameのようにアクセスできます。このドット記法は非常に便利で、JavaScriptでは主流の書き方です。
3. 言語における「立ち位置」
これは少し概念的な話になりますが、非常に重要です。
- Python: 辞書は、リストやタプル、セットなどと並ぶ、数ある便利な「データ構造」の一つです。その主な役割は、データを効率的に格納し、取り出すことです。
- JavaScript: オブジェクトは、単なるデータ構造ではありません。JavaScriptという言語そのものを形作る、最も基本的な「部品」です。JavaScriptでは、関数や配列など、ほとんどのものが内部的にはオブジェクトとして扱われています。オブジェクトは、JavaScriptの根幹をなす概念なのです。
4. 用意されている機能(メソッド)
キーや値の一覧を取得する、といった操作で使うメソッドの名前や使い方も異なります。
- Python:
player.keys(): キーの一覧を取得player.values(): 値の一覧を取得player.items(): キーと値のペアの一覧を取得
- JavaScript:
Object.keys(player): キーの一覧を取得Object.values(player): 値の一覧を取得Object.entries(player): キーと値のペアの一覧を取得
Pythonでは辞書オブジェクト自身がメソッドを持っているのに対し、JavaScriptでは Object というグローバルなオブジェクトのメソッドに、対象のオブジェクトを渡して使うのが特徴的ですね。
まとめ:混乱しないためのポイント
いかがでしたか?そっくりに見えても、文法や背景にある思想にははっきりとした違いがあるんですね。
最後に、二つの言語を行き来するときに混乱しないための、簡単な覚え方を共有します。
- 「Pythonのキーは引用符で囲むのが基本!」
- 「JavaScriptではドット記法が使えるのが便利!」
- 「JavaScriptのオブジェクトは、ただの入れ物じゃなくて、もっと偉大な存在!」
まずはこの3点だけ意識してみてください。
今後の学習としては、JavaScriptに最近導入された Map という、よりPythonの辞書に近い純粋なデータ構造について学んでみたり、JavaScriptのオブジェクトの根幹にある「プロトタイプ」という仕組みを調べてみると、両者の違いがさらに深く理解できるようになりますよ!
投稿者プロフィール
- 代表取締役
-
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。
最新の投稿
山崎講師2025年11月1日P値とは?新人エンジニア必見!「白いカラス」で学ぶ仮説検定の第一歩
山崎講師2025年11月1日VScode「表示」メニュー完全ガイド!最強の『コマンドパレット』と作業画面のカスタマイズ術
山崎講師2025年11月1日VScode「選択」メニュー攻略!カーソルを自在に操り、編集速度をハックしよう
山崎講師2025年11月1日VScodeの「編集」メニュー徹底解説!これぞエンジニアの三種の神器