😸
Pythonの初心者レッスンーーPython辞書型(dict)
シーリズの目次
Pythonの初心者レッスンをここにまとめています。
Pythonの辞書型(dict
)は、キーと値のペアを格納するデータ構造です。辞書は変更可能(ミュータブル)で、キーは一意でなければなりませんが、値は重複しても構いません。辞書は以下の特徴を持っています。
- キーと値のペア: 辞書はキーと値のペアを持ちます。キーを使って対応する値にアクセスします。
- 順序: Python 3.7以降では、辞書の要素は挿入された順序を保持します。
- 変更可能: 辞書は作成後に要素の追加、変更、削除が可能です。
d = {key1 : value1, key2 : value2, key3 : value3 }
辞書の作成
辞書は波括弧{}
を使って作成します。キーと値はコロン:
で区切り、ペアはカンマ,
で区切ります。
# 空の辞書
empty_dict = {}
# 空の辞書
emptyDict = dict()
# キーと値を持つ辞書
person = {"name": "Alice", "age": 25, "city": "New York"}
tinydict = {'name': 'runoob', 'likes': 123, 'url': 'www.runoob.com'}
辞書のアクセス
キーを使って値にアクセスします。存在しないキーにアクセスするとエラーが発生します。
print(person["name"]) # Alice
print(person["age"]) # 25
# 存在しないキーにアクセスするとエラー
# print(person["address"]) # KeyError: 'address'
辞書の操作
要素の追加と更新
辞書に新しいキーと値を追加したり、既存のキーの値を更新したりできます。
# 要素の追加
person["address"] = "123 Main St"
print(person) # {'name': 'Alice', 'age': 25, 'city': 'New York', 'address': '123 Main St'}
# 要素の更新
person["age"] = 26
print(person) # {'name': 'Alice', 'age': 26, 'city': 'New York', 'address': '123 Main St'}
要素の削除
del
ステートメントやpop()
メソッドを使って要素を削除します。
# delステートメントを使って削除
del person["city"]
print(person) # {'name': 'Alice', 'age': 26, 'address': '123 Main St'}
# pop()メソッドを使って削除
address = person.pop("address")
print(address) # 123 Main St
print(person) # {'name': 'Alice', 'age': 26}
辞書のメソッド
辞書には便利なメソッドがいくつか用意されています。
# keys()メソッド:辞書の全てのキーを取得
keys = person.keys()
print(keys) # dict_keys(['name', 'age'])
# values()メソッド:辞書の全ての値を取得
values = person.values()
print(values) # dict_values(['Alice', 26])
# items()メソッド:辞書の全てのキーと値のペアを取得
items = person.items()
print(items) # dict_items([('name', 'Alice'), ('age', 26)])
# get()メソッド:キーを指定して値を取得、キーが存在しない場合にデフォルト値を返す
name = person.get("name")
print(name) # Alice
address = person.get("address", "Not Found")
print(address) # Not Found
辞書の反復処理
辞書のキー、値、またはキーと値のペアを反復処理できます。
# キーの反復処理
for key in person:
print(key)
# 値の反復処理
for value in person.values():
print(value)
# キーと値のペアの反復処理
for key, value in person.items():
print(f"{key}: {value}")
キー(鍵)の特性
-
唯一性:
- 各キーはユニークでなければなりません。同じ辞書内で重複したキーを持つことはできません。もし辞書に重複したキーを追加しようとすると、最後に追加したキーが優先され、以前の値は上書きされます。
d = {"a": 1, "b": 2, "a": 3}
print(d) # {'a': 3, 'b': 2}
-
変更不可(ハッシュ可能):
- キーは変更不可(イミュータブル)でなければなりません。一般的に、文字列、数値、タプルなどのイミュータブルなデータ型がキーとして使用されます。リストや辞書などのミュータブルなデータ型はキーとして使用できません。
d = {1: "one", (2, 3): "tuple", "key": "value"}
# 有効なキー:整数、タプル、文字列
print(d) # {1: 'one', (2, 3): 'tuple', 'key': 'value'}
# 無効なキー(リスト)はTypeErrorを引き起こす
# d = {[1, 2]: "list"} # TypeError: unhashable type: 'list'
-
キーの比較:
- キーは比較可能である必要があります。Pythonはキーの比較を使用して辞書内の値を検索します。キーとして使用するデータ型は、比較が定義されている必要があります。
-
データ型の混在:
- 辞書のキーには異なるデータ型を混在させることができます。例えば、同じ辞書内で整数、文字列、タプルをキーとして使用することができます。
d = {1: "one", "two": 2, (3, 4): "tuple"}
print(d) # {1: 'one', 'two': 2, (3, 4): 'tuple'}
辞書型に関する関数
関数/メソッド | 説明 |
---|---|
dict() |
新しい辞書を作成します。 |
len(dict) |
辞書の要素数を返します。 |
dict[key] |
指定されたキーに対応する値を返します。 |
dict[key] = value |
指定されたキーに値を設定します。既存のキーの場合、その値を更新します。 |
del dict[key] |
指定されたキーと対応する値を辞書から削除します。 |
key in dict |
キーが辞書に含まれているかを確認します。 |
dict.keys() |
辞書の全てのキーを返します。 |
dict.values() |
辞書の全ての値を返します。 |
dict.items() |
辞書の全てのキーと値のペアを返します。 |
dict.clear() |
辞書の全ての要素を削除します。 |
dict.copy() |
辞書の浅いコピーを返します。 |
dict.get(key[, default]) |
指定されたキーに対応する値を返します。キーが存在しない場合はデフォルト値を返します。 |
dict.pop(key[, default]) |
指定されたキーに対応する値を返し、そのキーと値を辞書から削除します。 |
dict.popitem() |
辞書からランダムにキーと値のペアを削除し、そのペアを返します。 |
dict.setdefault(key[, default]) |
指定されたキーに対応する値を返します。キーが存在しない場合、キーにデフォルト値を設定します。 |
dict.update([other]) |
他の辞書やキーと値のペアから辞書を更新します。 |
dict.fromkeys(seq[, value]) |
指定されたキーのシーケンスから新しい辞書を作成し、全てのキーにデフォルト値を設定します。 |
Discussion