まず結論

辞書は、キーと値をセットで持つデータです。

user = {
    "name": "モコ",
    "age": 3
}

この例では、"name" というキーに "モコ""age" というキーに 3 が入っています。

辞書は、番号ではなく名前で値を取り出したいときに便利です。

イメージで考える

辞書は、名前ラベルが付いた引き出しの集まりだと考えます。

"name" の引き出しには "モコ" が入っています。

"age" の引き出しには 3 が入っています。

番号で順番に探すのではなく、ラベル名を見て目的の値を取り出すイメージです。

キーで値を取り出す

辞書から値を取り出すときは、キーを使います。

user = {"name": "モコ", "age": 3}

print(user["name"])
print(user["age"])

user["name"] は「user の中から name の値を取り出す」と読めます。

値を追加する

あとから新しいキーと値を追加できます。

user = {"name": "モコ"}
user["level"] = 5

print(user)

"level" というキーに 5 が追加されます。

値を変更する

すでにあるキーに代入すると、値を変更できます。

user = {"name": "モコ", "level": 1}
user["level"] = 2

print(user["level"])

この場合、level2 になります。

リストとの違い

リストは順番で取り出します。

names = ["モコ", "ソラ"]
print(names[0])

辞書はキーで取り出します。

user = {"name": "モコ"}
print(user["name"])

順番よりも「名前」「年齢」「点数」のような意味で取り出したいなら、辞書が向いています。

よくあるエラー

存在しないキーを指定するとエラーになります。

user = {"name": "モコ"}
print(user["age"])

"age" が辞書にないためです。
キーがあるか分からないときは、あとで get() という書き方も使えます。

手を動かすミニ練習

次の辞書で、namelevel を取り出してみましょう。

user = {"name": "モコ", "level": "初心者"}

print(user["name"])
print(user["level"])

リストは番号で取り出しますが、辞書はキーの名前で取り出します。