サイトアイコン 【TechGrowUp】

Python開発入門13 Pythonの辞書(Dictionary)を解説

はじめに

Pythonの**辞書(Dictionary)**は、キーと値のペアを管理する強力なデータ構造です。他の言語で「マップ」や「ハッシュテーブル」として知られているデータ構造に相当します。この辞書を使えば、名前と電話番号、ユーザーIDと情報など、関連性のあるデータを簡単に管理できます。

この記事では、Pythonの辞書について基礎から応用まで詳しく解説します。辞書の基本操作、実践的な活用方法、さらには初心者が押さえておくべき注意点までをわかりやすく説明します。

辞書(Dictionary)とは?

辞書は、**キー(key)値(value)**のペアでデータを格納するデータ型です。Pythonの辞書は以下の特徴を持っています:

辞書の作成と基本操作

辞書の作成

辞書は波括弧({})を使って作成します

# 空の辞書
empty_dict = {}

# 要素を持つ辞書
user = {"name": "Alice", "age": 25, "location": "Tokyo"}

print(user)  # {'name': 'Alice', 'age': 25, 'location': 'Tokyo'}

辞書の要素へのアクセス

キーを指定して値を取得します。

user = {"name": "Alice", "age": 25, "location": "Tokyo"}

# 値の取得
print(user["name"])  # Alice
print(user["age"])   # 25
注意:存在しないキーを指定するとエラーになる
print(user["email"])  # KeyError: 'email'
対処方法:get()を使用

get()を使うと、キーが存在しない場合にデフォルト値を返すことができます。

print(user.get("email", "なし"))  # なし

要素の追加と更新

要素の追加

新しいキーと値を辞書に追加します。

user = {"name": "Alice"}
user["age"] = 25
print(user)  # {'name': 'Alice', 'age': 25}
要素の更新

既存のキーを指定して値を更新します。

user = {"name": "Alice", "age": 25}
user["age"] = 26
print(user)  # {'name': 'Alice', 'age': 26}

要素の削除

delキーワードを使用

特定のキーとその値を削除します。

user = {"name": "Alice", "age": 25}
del user["age"]
print(user)  # {'name': 'Alice'}
pop()を使用

指定したキーを削除し、その値を返します。

user = {"name": "Alice", "age": 25}
age = user.pop("age")
print(age)  # 25
print(user)  # {'name': 'Alice'}

辞書のループ処理

辞書を効率的に操作するために、forループを使用できます。

キーを反復処理

user = {"name": "Alice", "age": 25, "location": "Tokyo"}

for key in user:
    print(key)  # name, age, location

値を反復処理

user = {"name": "Alice", "age": 25, "location": "Tokyo"}

for value in user.values():
    print(value)  # Alice, 25, Tokyo

キーと値を反復処理

items()を使うと、キーと値を同時に取得できます。

user = {"name": "Alice", "age": 25, "location": "Tokyo"}

for key, value in user.items():
    print(f"{key}: {value}")

出力:

name: Alice
age: 25
location: Tokyo

辞書の組み込みメソッド

Pythonの辞書には、便利な組み込みメソッドが用意されています。

keys()

辞書のすべてのキーを取得します。

user = {"name": "Alice", "age": 25}
print(user.keys())  # dict_keys(['name', 'age'])

values()

辞書のすべての値を取得します。

user = {"name": "Alice", "age": 25}
print(user.values())  # dict_values(['Alice', 25])

items()

辞書のすべてのキーと値をタプルのリストとして取得します。

user = {"name": "Alice", "age": 25}
print(user.items())  # dict_items([('name', 'Alice'), ('age', 25)])

update()

別の辞書をマージします。

user = {"name": "Alice", "age": 25}
extra_info = {"location": "Tokyo", "email": "alice@example.com"}
user.update(extra_info)
print(user)
# {'name': 'Alice', 'age': 25, 'location': 'Tokyo', 'email': 'alice@example.com'}

ネストされた辞書

辞書の中に辞書を格納することで、複雑なデータ構造を管理できます。

users = {
    "user1": {"name": "Alice", "age": 25},
    "user2": {"name": "Bob", "age": 30},
}

print(users["user1"]["name"])  # Alice

辞書の応用例

カウントの集計

リスト内の要素の出現回数を辞書でカウントします。

words = ["apple", "banana", "apple", "cherry"]
word_count = {}

for word in words:
    word_count[word] = word_count.get(word, 0) + 1

print(word_count)  # {'apple': 2, 'banana': 1, 'cherry': 1}

JSONデータの処理

辞書はJSON形式のデータの操作に便利です。

import json

user = {"name": "Alice", "age": 25, "location": "Tokyo"}
json_data = json.dumps(user)
print(json_data)  # {"name": "Alice", "age": 25, "location": "Tokyo"}

まとめ

Pythonの辞書は、キーと値のペアを管理するための柔軟で強力なツールです。本記事では、辞書の基本操作、ループ処理、便利なメソッド、さらにはネストされた辞書や応用例について解説しました。

Pythonの辞書を使いこなすことで、効率的で読みやすいコードを実現できます。ぜひ活用してみてください!

モバイルバージョンを終了