似ているようで実は違う?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年10月11日属人化を防ぐ!再現性と網羅性を高めるテスト設計の基本
全ての社員2025年10月11日交渉で損しない!エンジニアが知るべきBATNAとZOPAの関係とは?
山崎講師2025年10月10日【AI開発の登竜門】Google製ライブラリ「TensorFlow」とは?新人エンジニア向けに徹底解説!
山崎講師2025年10月10日【入門】scikit-learnとは?機械学習の「家庭教師」を新人エンジニア向けに徹底解説!