Pythonの辞書はキーと値のペアでデータを格納しますが、これらのデータをループ処理で一つずつ取り出したい場面は非常に多くあります。そのために、辞書には**keys()
、values()
、items()
**という3つの便利なメソッドが用意されています。
この記事では、これらのメソッドを使って辞書のキー、値、またはその両方を効率的に取得する方法を解説します。
keys()
メソッド:すべてのキーを取得する
keys()
メソッドは、辞書に含まれるすべてのキーを取り出すために使います。
# 商品の情報を格納した辞書
product_spec = {"name": "Laptop", "price": 1200, "stock": 50}
# keys()メソッドでキーを一つずつ表示
for key in product_spec.keys():
print(key)
実行結果:
name
price
stock
keys()
が返すのは「ビューオブジェクト」と呼ばれる特殊なオブジェクトですが、for
ループで直接使うことができます。また、list()
関数を使えば、キーをリストとして取得することも可能です。
product_keys_list = list(product_spec.keys())
print(product_keys_list) # 出力: ['name', 'price', 'stock']
values()
メソッド:すべての値を取得する
values()
メソッドは、keys()
と対照的に、辞書に含まれるすべての値を取り出します。
product_spec = {"name": "Laptop", "price": 1200, "stock": 50}
# values()メソッドで値を一つずつ表示
for value in product_spec.values():
print(value)
実行結果:
Laptop
1200
50
items()
メソッド:すべてのキーと値のペアを取得する
items()
メソッドは、辞書のキーと値のペアを一度に取得したい場合に非常に強力です。items()
は、(キー, 値)
という形のタプルの集まりを返します。
product_spec = {"name": "Laptop", "price": 1200, "stock": 50}
# items()メソッドでキーと値のペアを表示
for item_tuple in product_spec.items():
print(item_tuple)
実行結果:
('name', 'Laptop')
('price', 1200)
('stock', 50)
複数代入との組み合わせ
items()
の真価は、for
ループで複数代入と組み合わせることで発揮されます。これにより、キーと値をそれぞれ別の変数に直接受け取ることができ、コードが非常に読みやすくなります。
product_spec = {"name": "Laptop", "price": 1200, "stock": 50}
# 複数代入を使ってキーと値を別々の変数で受け取る
for key, value in product_spec.items():
print(f"Key: {key}, Value: {value}")
実行結果:
Key: name, Value: Laptop
Key: price, Value: 1200
Key: stock, Value: 50
この書き方は、辞書の内容をループ処理する際の最も一般的で推奨される方法です。
まとめ
keys()
: 辞書のすべてのキーを取得します。values()
: 辞書のすべての値を取得します。items()
: 辞書のすべてのキーと値のペアを取得します。- 特に
for key, value in my_dict.items():
という構文は、辞書を扱う上で非常に重要で便利なテクニックです。
これらのメソッドを使い分けることで、辞書に格納されたデータを自由自在に、そして効率的に処理できるようになります。