Python3 #15: 辞書(Dictionaries)

独習 PYTHON 3

Pythonの辞書(Dictionaries)は、キーと値のペアを格納するためのデータ構造です。辞書は、非常に効率的なキーによるアクセスを提供し、キーはユニークである必要がありますが、値は任意のデータ型を取ることができます。

辞書の特徴

  1. キーと値のペア(Key-Value Pairs):
    • 辞書は、キーとそれに関連付けられた値を持つペアのコレクションです。キーは一意でなければならず、値は重複しても構いません。
  2. 順序付き(Ordered, Python 3.7+):
    • Python 3.7以降、辞書は挿入順序を保持します。それ以前のバージョンでは、順序は保証されません。
  3. 変更可能(Mutable):
    • 辞書は変更可能であり、作成後に要素の追加、削除、更新が可能です。
  4. ユニークなキー(Unique Keys):
    • 辞書内の各キーは一意である必要があります。同じキーが複数回存在することは許されません。
Pythonの辞書(Dictionaries)
Pythonの辞書(Dictionaries)

辞書の作成と操作

Pythonでは、辞書(dictionary)は波括弧 {} を使用して作成できます。また、dict() コンストラクタを使用して辞書を作成することもできます。以下にそれぞれの方法の例を示します。

波括弧 {} を使用した方法

# 空の辞書を作成
empty_dict = {}

# 要素を持つ辞書を作成
person = {
    "name": "Alice",
    "age": 30,
    "city": "New York"
}

print(person)  # {'name': 'Alice', 'age': 30, 'city': 'New York'}

dict() コンストラクタを使用した方法

# 空の辞書を作成
empty_dict = dict()

# 要素を持つ辞書を作成
person = dict(name="Alice", age=30, city="New York")

print(person)  # {'name': 'Alice', 'age': 30, 'city': 'New York'}

両方の方法は同じ結果をもたらしますが、用途や好みに応じて使い分けることができます。

辞書の作成例

# 辞書の作成
my_dict = {
    "name": "Alice",
    "age": 25,
    "city": "New York"
}
print(my_dict)  # 出力: {'name': 'Alice', 'age': 25, 'city': 'New York'}

# dict() コンストラクタを使用して辞書を作成
another_dict = dict(name="Bob", age=30, city="Los Angeles")
print(another_dict)  # 出力: {'name': 'Bob', 'age': 30, 'city': 'Los Angeles'}

要素のアクセスと操作の例

# 要素へのアクセス
print(my_dict["name"])  # 出力: Alice

# 要素の追加
my_dict["email"] = "[email protected]"
print(my_dict)  # 出力: {'name': 'Alice', 'age': 25, 'city': 'New York', 'email': '[email protected]'}

# 要素の更新
my_dict["age"] = 26
print(my_dict)  # 出力: {'name': 'Alice', 'age': 26, 'city': 'New York', 'email': '[email protected]'}

# 要素の削除
del my_dict["city"]
print(my_dict)  # 出力: {'name': 'Alice', 'age': 26, 'email': '[email protected]'}

辞書のメソッドの例

# keys() メソッド
keys = my_dict.keys()
print(keys)  # 出力: dict_keys(['name', 'age', 'email'])

# values() メソッド
values = my_dict.values()
print(values)  # 出力: dict_values(['Alice', 26, '[email protected]'])

# items() メソッド
items = my_dict.items()
print(items)  # 出力: dict_items([('name', 'Alice'), ('age', 26), ('email', '[email protected]')])

辞書の使用例

# 辞書を使った簡単な電話帳
phone_book = {
    "John": "555-1234",
    "Jane": "555-5678",
    "Jake": "555-8765"
}

# 電話番号を取得
print(phone_book["Jane"])  # 出力: 555-5678

# 新しいエントリの追加
phone_book["Jill"] = "555-4321"
print(phone_book)  # 出力: {'John': '555-1234', 'Jane': '555-5678', 'Jake': '555-8765', 'Jill': '555-4321'}

# エントリの削除
del phone_book["John"]
print(phone_book)  # 出力: {'Jane': '555-5678', 'Jake': '555-8765', 'Jill': '555-4321'}

ネストされた辞書(Nested Dictionaries)

ネストされた辞書(Nested Dictionaries)は、辞書の中に他の辞書を含む構造のことを指します。ネストされた辞書を使用すると、階層的なデータを整理して管理するのに非常に便利です。以下にネストされた辞書の例を示します。

ネストされた辞書の例

# ネストされた辞書の作成
company = {
    "employee_1": {
        "name": "Alice",
        "age": 30,
        "department": "HR"
    },
    "employee_2": {
        "name": "Bob",
        "age": 35,
        "department": "Engineering"
    },
    "employee_3": {
        "name": "Charlie",
        "age": 28,
        "department": "Marketing"
    }
}

# ネストされた辞書のアクセス
print(company["employee_1"]["name"])  # Alice
print(company["employee_2"]["department"])  # Engineering

# ネストされた辞書の更新
company["employee_3"]["age"] = 29

print(company["employee_3"]["age"])  # 29

この例では、company 辞書の各キーが従業員の識別子で、その値が従業員に関する詳細情報を含む辞書となっています。各従業員辞書は、nameage、および department というキーを持っています。

辞書のネストを使用するメリット

  1. データの整理: データを階層構造で整理できるため、関連する情報をグループ化して保持するのに役立ちます。
  2. 読みやすさ: データが論理的にグループ化されているため、コードの可読性が向上します。
  3. 柔軟性: 辞書のネストは柔軟であり、複雑なデータ構造を表現するのに適しています。

このように、ネストされた辞書を使用することで、データの管理とアクセスが容易になります。

主な使用例

  • データの格納: キーと値のペアを使って関連データを効率的に格納する。
  • 高速な検索: キーを使って値を高速に検索する。
  • 構造化データ: JSONなどの構造化データをPythonで扱う場合に非常に便利。
購読
通知
0 Comments
Inline Feedbacks
View all comments