第13回|Pythonの辞書とは?キーと値で名前付きデータを扱う基本| はじめてのPython

* 当サイトでは、コンテンツの一部に広告を掲載しています。

System Note $ cat /proc/ai-disclosure

本記事の構成および論理分析にはAI(人工知能)を使用しています。情報の正確性は、システム管理者(UNIXユーザー)による手動検証済みです。

第13回|Pythonの辞書とは?キーと値で名前付きデータを扱う基本

はじめてのPython | 第13回

目次

1. はじめに

この回では、辞書を使って名前付きのデータを扱う方法を学びます。前回は、リストの要素を追加、変更、削除する方法を確認しました。

リストは順番でデータを管理するのに向いていますが、データに名前を付けて管理したい場面もあります。そのようなときに使うのが辞書です。

2. この回で学ぶこと

  • 辞書とは何か
  • キーと値の組み合わせ
  • キーを使って値を取得する方法
  • 値を追加、変更する方法
  • items() でキーと値をまとめて取り出す方法

3. 概念の説明

辞書は、キーと値を組み合わせてデータを管理する型です。たとえば、名前、年齢、住んでいる場所のように、それぞれの値に意味のある名前を付けて持たせたいときに使います。

辞書は {} を使って作ります。

student = {"name": "Taro", "age": 20, "city": "Tokyo"}

print(student)

この辞書では、"name""age""city" がキーです。それぞれに対応する "Taro" 20 "Tokyo" が値です。

辞書から値を取り出すときは、キーを [] の中に書きます。

student = {"name": "Taro", "age": 20}

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

この結果は次のようになります。

Taro
20

辞書に新しいデータを追加するときも、キーを使って代入します。

student = {"name": "Taro", "age": 20}
student["city"] = "Tokyo"

print(student)

この結果は {'name': 'Taro', 'age': 20, 'city': 'Tokyo'} です。

すでにあるキーに代入すると、そのキーの値は変更されます。

student = {"name": "Taro", "age": 20}
student["age"] = 21

print(student)

この結果は {'name': 'Taro', 'age': 21} です。

辞書の中身を順番に確認したいときは items() を使います。items() は、キーと値の組を1つずつ取り出せます。

student = {"name": "Taro", "age": 20}

for key, value in student.items():
    print(key, value)

この結果は次のようになります。

name Taro
age 20

4. サンプルコード

次のコードを見てください。

student = {"name": "Taro", "age": 20}

print("名前:", student["name"])
print("年齢:", student["age"])

student["city"] = "Tokyo"
student["age"] = 21

print("更新後の辞書:", student)

for key, value in student.items():
    print(key, "=", value)

このコードでは、値の取得、追加、変更、items() による取り出しを順番に確認しています。

5. 実行手順

まず、dictionary.py というファイルを作ります。

touch dictionary.py

dictionary.py をエディターで開き、次のコードを書いて保存します。

student = {"name": "Taro", "age": 20}

print("名前:", student["name"])
print("年齢:", student["age"])

student["city"] = "Tokyo"
student["age"] = 21

print("更新後の辞書:", student)

for key, value in student.items():
    print(key, "=", value)

保存したら、ターミナルで次のコマンドを実行します。

python3 dictionary.py

実行結果は次のようになります。

名前: Taro
年齢: 20
更新後の辞書: {'name': 'Taro', 'age': 21, 'city': 'Tokyo'}
name = Taro
age = 21
city = Tokyo

6. コードの読み方

  • student = {"name": "Taro", "age": 20} は、キーと値を持つ辞書を作って変数 student に代入。
  • この辞書では、"name""age" がキーです。
  • student["name"] は、キーが "name" の値を取り出しています。
  • この例では "Taro" が取り出されます。
  • student["city"] = "Tokyo" は、新しいキー "city" と値 "Tokyo" を追加しています。
  • もともと "city" というキーがなかったので、辞書に新しい組が増えます。
  • student["age"] = 21 は、すでにあるキー "age" の値を変更しています。
  • この場合は 2021 に変わります。
  • for key, value in student.items(): は、辞書のキーと値を1組ずつ取り出しています。
  • key にキーが入り、value にそのキーに対応する値が入ります。

7. 初学者がつまずきやすい点

  • 辞書は順番ではなくキーで値を管理する
  • キーと値は キー: 値 の形で書く
  • 値を取り出すときは添字ではなくキーを使う
  • 新しいキーに代入すると追加になり、同じキーに代入すると変更になる
  • items() はキーと値をセットで取り出すために使う

特に、リストの data[0] と辞書の data["name"] は意味が違います。リストは位置を使い、辞書はキーを使います。

8. よくあるエラー

1つ目は、存在しないキーを使って値を取り出した場合です。

KeyError: 'city'

たとえば次のような書き方です。

student = {"name": "Taro", "age": 20}
print(student["city"])

この辞書には "city" というキーがまだないため、エラーになります。

2つ目は、辞書の書き方で :, を抜かしてしまった場合です。

SyntaxError: invalid syntax

たとえば次のような書き方です。

student = {"name" "Taro", "age": 20}

辞書では、キーと値の間に : が必要です。

3つ目は、items() を使った for 文で受け取る変数の数を間違えた場合です。

ValueError: not enough values to unpack (expected 3, got 2)

たとえば次のような書き方です。

student = {"name": "Taro", "age": 20}

for key, value, extra in student.items():
    print(key, value, extra)

for key, value in student.items(): の形で受け取ると、キーと値を分けて扱えます。

items() は毎回キーと値の2つを返すため、3つの変数では受け取れません。

9. 練習用コード

次のコードを practice_dictionary.py として保存して実行してください。

book = {"title": "Python", "pages": 300}

print(book["title"])

book["author"] = "Sato"
book["pages"] = 320

for key, value in book.items():
    print(key, value)

実行したあとで、どのキーが追加され、どの値が変更されたか確認してください。

余裕があれば、book["price"] = 2800 を追加して、表示結果がどう変わるか試してください。

10. この回で理解しておくこと

  • 辞書はキーと値の組み合わせでデータを管理する
  • 値を取り出すときはキーを使う
  • 新しいキーへの代入は追加になる
  • すでにあるキーへの代入は変更になる
  • items() を使うとキーと値をまとめて取り出せる

11. まとめ

今回は、辞書を使って名前付きのデータを扱う基本を確認しました。辞書を使うと、それぞれの値が何を表しているのかをキーで明確にできます。

値の取得、追加、変更、items() の使い方は、辞書を使うときの基本です。リストとの違いも意識しながら使えるようにしてください。

12. 次回予告

次回は、関数を作って処理をまとめる方法を学びます。def を使って、同じ処理を何度も書かずに再利用する基本を確認します。

復習してみよう

復習したい方は、こちらもあわせてご覧ください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

のいのアバター のい UNIX Cafe マスター

Macintosh Color Classicから始まった旅は、長いWindows時代を経て、Windows10のサポート終了をきっかけにUNIXの世界へ戻ってきました。UNIX Cafeでは、UNIX・Linux・そしてMacな世界を、むずかしい言葉を使わず、物語のように書いています。プログラミングは、アイデアをコンピューターに伝えるための言葉です。簡単な単語と文法を覚えれば、誰でもコマンドを使えます。ぜひ一度、やさしいプログラミングの世界をのぞいてみてください。

Created by UNIX Cafe

目次