Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonの辞書keys()メソッド徹底解説:基本構文から実践例まで

Pythonの辞書keys()メソッドは、辞書に含まれるすべてのキーを格納したオブジェクトを返します。list()メソッドを使うことで、このオブジェクトをリストに変換できます。keys()メソッドの構文は「dictionary.keys()」です。

Pythonでプログラミングをしていると、辞書(dict)に保存されているすべてのキーを一覧として取得したい場面があります。

たとえば、図書館の蔵書情報を管理する辞書があったとしましょう。どんな種類の情報を保存しているのかを把握するために、すべてのキーを取得したいことがあります。

そんなときに役立つのが、辞書のkeys()メソッドです。この記事では、具体的なコード例とともに、Pythonにおける辞書keys()メソッドの使い方を詳しく解説します。

Pythonの辞書keys()メソッドとは

Pythonの辞書keys()メソッドは、辞書内のすべてのキーを返すメソッドです。戻り値は特別なビューオブジェクトであり、for文などで反復処理(イテレーション)が可能です。keys()メソッドは引数を受け取りません。

keys()メソッドの構文は以下のとおりです。

dict_name.keys()

辞書名の後ろにkeys()メソッドを記述します。

keys()メソッドは、キーのリストではなく「ビューオブジェクト」を返します。このオブジェクトは反復可能(イテラブル)なので、for文を使って中身を確認できます。ただし、用途によってはリストへの変換が必要になることもあります。

キーをリストに変換する方法

辞書のすべてのキーをコンソールに出力したい場合は、リストに変換すると出力が読みやすくなります。

key_list = list(dictionary.keys())
print(key_list)

このコードはキーのリストを返します。値が角括弧[]で囲まれていることから、データがリスト形式であることがわかります。

また、「辞書の最初のキーを知りたい」という場合も、インデックス指定を使えば取得できます。ただし、その前にキーのコレクションをリストに変換しておく必要があります。

key_list = list(dictionary.keys())
print(key_list[0])

このコードは、辞書のキーリストからインデックス0番目のキーを取得します。

辞書keys()メソッドの実例

ここでは、ベーカリーでの注文情報を保存する辞書を例に考えてみましょう。この辞書には「product(商品)」「price(価格)」「mayo(マヨネーズの有無)」という3つのキーが保存されており、それぞれに対応する値が設定されています。

ベーカリーでは、各注文伝票に新しい情報を追加することを検討しています。その前に、現在どのような情報を収集しているのかを把握したいとのことです。

辞書内のキーの一覧を取得するには、keys()メソッドを使用します。

order = {
	'product': 'Ham Sandwich',
	'price': 2.10,
	'mayo': False
}

order_keys = order.keys()

print(order_keys)

このコードを実行すると、次の出力が得られます。

['product', 'price', 'mayo']

まず、orderという名前のPython辞書を定義しました。次に、order.keys()を使って辞書内のキーの一覧を取得し、Python変数order_keysに代入しています。最後に、order_keys変数の値をコンソールに出力しています。

このように、コードは辞書内のすべてのキーを返します。

辞書を更新した場合の挙動

keys()メソッドの便利な点は、辞書に新しいキーを追加しても、常に最新の状態を反映してくれることです。

たとえば、顧客がギフトカードで支払ったかどうかを示す新しいキーを辞書に追加してみましょう。以下のコードでこのキーを追加できます。

order = {
	'product': 'Ham Sandwich',
	'price': 2.10,
	'mayo': False
}

order_keys = order.keys()

order["gift_card"] = False

print(order_keys)

インデックス表記を使って、値Falseに関連付けられた「gift_card」というキーを追加しています。この行は、キーの一覧をorder_keys変数に代入した後に記述されています。

このコードの出力結果は次のとおりです。

['product', 'price', 'mayo', 'gift_card']

新しく追加されたのは1行だけです。この行により、キー名gift_card、値Falseを持つ新しい項目が辞書に作成されます。

その後、order_keys変数の中身をコンソールに出力しています。注目すべきは、新しい値を追加する前にorder.keys()でキーを取得していたにもかかわらず、プログラムが変更を正しく追跡している点です。

つまり、新しいキーを追加した後でも、keys()メソッドは辞書内のすべてのキーの最新の一覧を保持してくれるのです。

Pythonでキーが辞書に存在するか確認する方法

keys()メソッドの一般的な用途のひとつは、特定のキーが辞書に存在するかどうかの確認です。Pythonのin演算子を使うことで、キーが辞書に含まれているかをチェックでき、通常はif文と組み合わせて使用します。

たとえば、order辞書にmayoというキーが保存されているかどうかを確認したいとしましょう。以下のコードで実現できます。

order = {
	'product': 'Ham Sandwich',
	'price': 2.10,
	'mayo': False
}

if "mayo" in order.keys():
	print("The 'mayo' key is in the order dictionary.")
else:
	print("The 'mayo' key is not in the order dictionary")

このコードの出力結果は次のとおりです。

The 'mayo' key is in the order dictionary.

このコードでは、まずorder辞書を定義しています。次に、Pythonのif…in文を使って、order.keys()で生成されたキーの一覧の中にmayoキーが存在するかどうかを確認しています。

mayoはorder辞書のキーなので、if文の条件はTrueと評価され、if文内のコードが実行されます。もしmayoキーを削除した場合は、次のような出力が返されます。

The 'mayo' key is not in the order dictionary.

このように、コードはmayoがもはや辞書のキーではないことを正しく認識し、else文の中のコードが実行されるのです。

まとめ

辞書のkeys()メソッドは、Python辞書内のキーの一覧を取得するためのメソッドです。if…in文と組み合わせて使うことで、特定のキーが辞書に存在するかどうかを確認することもできます。keys()メソッドは引数を受け取りません。

Pythonのプログラミングについてさらに学びたい方は、Python学習ガイドも参考にしてください。専門家による学習アドバイスや、おすすめのオンライン講座・Pythonリソースをご紹介しています。

  1. Pythonで辞書をキー順に並べ替える方法【OrderedDictとsorted()の使い方】

    Pythonで辞書(dict)の要素をキーの順序に従って並べ替えたい場面はよくあります。この記事では、標準ライブラリのcollectionsモジュールに含まれるOrderedDictと、組み込み関数sorted()を組み合わせて、辞書をキー順にソートする方法を解説します。 OrderedDictとは Pythonの標準ディストリビューションには、高性能なコンテナデータ型を定義したcollectionsモジュールが含まれています。その中のOrderedDictは、辞書のサブクラスであり、要素が追加された順序を記憶する特徴を持っています。OrderedDictをイテレートすると、キーが最初に追加さ

  2. Pythonで辞書(dict)のすべてのキーを取得・表示する方法

    Pythonでは、辞書(dict)オブジェクトが持つ keys() メソッドを使うことで、すべてのキーを簡単に取得できます。このメソッドは辞書内の全キーを含むビューオブジェクト(dict_keys)を返します。 keys() メソッドでキーを取得する まずは基本的な使い方を見てみましょう。次の例では、3つのキーと値を持つ辞書から、すべてのキーを取り出しています。 >>> D1 = {1:a, 2:b, 3:c} >>> D1.keys() dict_keys([1, 2, 3]) >>> list(D1.keys()) [1, 2, 3]