はじめに
Pythonのdictについて自分なりに理解を深め、復習するための学習ノート的なものです。
同じように勉強したい方にとって参考になれば幸いです。
dictとは
Pythonにおけるdictは、辞書(Dictionary)とも呼ばれるデータ構造です。dictは、キー(Key)と値(Value)のペアを格納することができます。キーは一意であり、それに対応する値を迅速に検索することができます。
dictは波括弧 {} を使用して作成され、キーと値はコロン : を使用して区切ります。以下は、dictの基本的な構文です。
my_dict = {key1: value1, key2: value2, key3: value3}
ここで、key1、key2、key3はキーであり、value1、value2、value3はそれぞれのキーに対応する値です。キーと値のペアはカンマ , で区切られます。
dictのキーは一意である必要があります。つまり、同じキーを複数回使用することはできません。ただし、値は重複していても構いません。
基本操作
要素の追加・更新
dictに要素を追加または更新するには、キーを指定して値を代入します。
my_dict = {}
my_dict[key] = value # 要素の追加または更新
要素の取得
dictから要素を取得するには、キーを指定してアクセスします。
value = my_dict[key] # 要素の取得
もし存在しないキーを指定した場合、KeyErrorが発生します。この場合、キーが存在するかどうかを事前にチェックすることができます。
if key in my_dict:
value = my_dict[key]
else:
# キーが存在しない場合の処理
または、get()メソッドを使用してキーが存在しない場合のデフォルト値を指定することもできます。
Copy code
value = my_dict.get(key, default_value) # キーが存在しない場合は default_value を返す
要素の削除
dictから要素を削除するには、del文を使用します。
del my_dict[key] # 要素の削除
要素の存在チェック
キーがdictに存在するかどうかを確認するには、in演算子を使用します。
if key in my_dict:
# キーが存在する場合の処理
よく使われるメソッド
keys()
辞書のキーを取得します。
my_dict = {"name": "John", "age": 25, "city": "Tokyo"}
keys = my_dict.keys()
print(keys) # 出力: dict_keys(['name', 'age', 'city'])
values()
辞書の値を取得します。
my_dict = {"name": "John", "age": 25, "city": "Tokyo"}
values = my_dict.values()
print(values) # 出力: dict_values(['John', 25, 'Tokyo'])
items()
辞書のキーと値のペアを取得します。
my_dict = {"name": "John", "age": 25, "city": "Tokyo"}
items = my_dict.items()
print(items) # 出力: dict_items([('name', 'John'), ('age', 25), ('city', 'Tokyo')])
get(key, default)
指定したキーに対応する値を取得します。キーが存在しない場合はデフォルト値を返します。
my_dict = {"name": "John", "age": 25, "city": "Tokyo"}
name = my_dict.get("name", "Unknown")
country = my_dict.get("country", "Unknown")
print(name) # 出力: John
print(country) # 出力: Unknown
pop(key, default)
指定したキーに対応する値を取り出し、辞書から削除します。キーが存在しない場合はデフォルト値を返します。
my_dict = {"name": "John", "age": 25, "city": "Tokyo"}
age = my_dict.pop("age", None)
country = my_dict.pop("country", "Unknown")
print(age) # 出力: 25
print(country) # 出力: Unknown
print(my_dict) # 出力: {'name': 'John', 'city': 'Tokyo'}
update(other_dict)
別の辞書またはキーと値のペアのコレクションで辞書を更新します。
my_dict = {"name": "John", "age": 25, "city": "Tokyo"}
other_dict = {"country": "Japan", "age": 26}
my_dict.update(other_dict)
print(my_dict) # 出力: {'name': 'John', 'age': 26, 'city': 'Tokyo', 'country': 'Japan'}
clear()
辞書のすべてのキーと値を削除し、空の辞書にします。
my_dict = {"name": "John", "age": 25, "city": "Tokyo"}
my_dict.clear()
print(my_dict) # 出力: {}
copy()
辞書の浅いコピーを作成します。新しい辞書オブジェクトが作成され、元の辞書とは別のメモリ領域に格納されます。
my_dict = {"name": "John", "age": 25, "city": "Tokyo"}
new_dict = my_dict.copy()
print(new_dict) # 出力: {'name': 'John', 'age': 25, 'city': 'Tokyo'}
setdefault(key, default)
指定したキーに対応する値を取得します。キーが存在しない場合はキーとデフォルト値を辞書に追加します。
my_dict = {"name": "John", "age": 25, "city": "Tokyo"}
name = my_dict.setdefault("name", "Unknown")
country = my_dict.setdefault("country", "Japan")
print(name) # 出力: John
print(country) # 出力: Japan
print(my_dict) # 出力: {'name': 'John', 'age': 25, 'city': 'Tokyo', 'country': 'Japan'}
len()
辞書内のキーの数を返します。
my_dict = {"name": "John", "age": 25, "city": "Tokyo"}
length = len(my_dict)
print(length) # 出力: 3
in キーワード
キーの存在を確認します。
my_dict = {"name": "John", "age": 25, "city": "Tokyo"}
if "name" in my_dict:
print("キー 'name' が存在します。")
dict.fromkeys(keys, value)
指定されたキーのリストから辞書を作成し、すべてのキーに指定された値を割り当てます。
keys = ["name", "age", "city"]
default_value = "Unknown"
my_dict = dict.fromkeys(keys, default_value)
print(my_dict) # 出力: {'name': 'Unknown', 'age': 'Unknown', 'city': 'Unknown'}
dict.popitem()
辞書からランダムなキーと値のペアを取り出し、そのペアを削除します。
my_dict = {"name": "John", "age": 25, "city": "Tokyo"}
key, value = my_dict.popitem()
print(key, value) # 出力: 任意のキーと値のペア
print(my_dict) # 出力: 削除されたペアを除いた辞書
dict.setdefault(key, default)
setdefault() メソッドと同様ですが、新しいキーと値を辞書に追加します。
my_dict = {"name": "John", "age": 25, "city": "Tokyo"}
country = my_dict.setdefault("country", "Japan")
print(country) # 出力: Japan
print(my_dict) # 出力: {'name': 'John', 'age': 25, 'city': 'Tokyo', 'country': 'Japan'}
最後に
これらのメソッドを使うことで、辞書の操作やデータの取得・変更が容易になります。辞書はPythonにおいて非常に便利なデータ構造です。
ぜひ理解を深め、自由自在に扱えるレベルまで持っていきましょう。
(おまけ)Pythonの勉強をさらっとしたい人へのおすすめ