【Python】辞書にキーが存在するか調べる方法

この記事では、Pythonの辞書において特定のキーが存在するかどうかを調べる方法と、キーが存在しない場合の処理方法について解説します。

初心者の方でもわかりやすく、具体的なサンプルコードと実行結果の例を交えて説明します。

目次から探す

キーの存在を調べる方法

辞書に特定のキーが存在するかどうかを調べる方法はいくつかあります。

ここでは、in演算子とget()メソッドの2つの方法を紹介します。

in演算子を使う方法

in演算子を使うと、辞書内に指定したキーが存在するかどうかを簡単に調べることができます。

以下はその使い方の例です。

my_dict = {"apple": 1, "banana": 2, "orange": 3}

if "apple" in my_dict:
    print("キーが存在します")
else:
    print("キーが存在しません")

上記のコードでは、my_dictという辞書にキーとしてappleが存在するかどうかを調べています。

もしキーが存在すれば、キーが存在しますと表示されます。

存在しない場合は、キーが存在しませんと表示されます。

get()メソッドを使う方法

get()メソッドを使うと、辞書内に指定したキーが存在するかどうかを調べることができます。

以下はその使い方の例です。

my_dict = {"apple": 1, "banana": 2, "orange": 3}

if my_dict.get("apple") is not None:
    print("キーが存在します")
else:
    print("キーが存在しません")

上記のコードでは、my_dictという辞書にキーとしてappleが存在するかどうかを調べています。

get()メソッドは、指定したキーが存在すればその値を返し、存在しない場合はNoneを返します。

したがって、get()メソッドの返り値がNoneでない場合はキーが存在すると判断できます。

in演算子とget()メソッドの違い

in演算子とget()メソッドの違いは、キーが存在しない場合の挙動です。

in演算子は、キーが存在しない場合にはFalseを返します。

一方、get()メソッドは、キーが存在しない場合にはNoneを返します。

例えば、以下のような辞書があるとします。

my_dict = {"apple": 1, "banana": 2, "orange": 3}

このとき、in演算子を使って存在しないキーを調べると、以下のような結果になります。

if "grape" in my_dict:
    print("キーが存在します")
else:
    print("キーが存在しません")

出力結果は、キーが存在しませんとなります。

一方、get()メソッドを使って存在しないキーを調べると、以下のような結果になります。

if my_dict.get("grape") is not None:
    print("キーが存在します")
else:
    print("キーが存在しません")

出力結果も、キーが存在しませんとなります。

このように、in演算子とget()メソッドはキーが存在しない場合の挙動が異なるため、使い方によって適切な方法を選ぶ必要があります。

in演算子は、辞書のキーの存在を調べるだけでなく、リストや文字列などの他のデータ型に対しても使用することができます。

詳細は公式ドキュメントを参照してください。

キーが存在しない場合の処理方法

辞書にキーが存在しない場合、どのように処理するかについて説明します。

in演算子の場合

in演算子を使ってキーの存在を調べる場合、キーが存在しない場合にはFalseが返されます。

そのため、条件分岐を使ってキーの存在に応じた処理を行うことができます。

以下は、in演算子を使ってキーの存在を調べ、キーが存在する場合と存在しない場合で処理を分ける例です。

my_dict = {"apple": 100, "banana": 200, "orange": 300}

if "apple" in my_dict:
    print("キーが存在します")
    # キーが存在する場合の処理を記述する
else:
    print("キーが存在しません")
    # キーが存在しない場合の処理を記述する

上記の例では、appleというキーが辞書に存在するため、キーが存在しますというメッセージが表示されます。

get()メソッドの場合

get()メソッドを使ってキーの存在を調べる場合、キーが存在する場合にはその値が返されます。

しかし、キーが存在しない場合にはデフォルト値を指定することができます。

以下は、get()メソッドを使ってキーの存在を調べ、キーが存在する場合と存在しない場合で処理を分ける例です。

my_dict = {"apple": 100, "banana": 200, "orange": 300}

value = my_dict.get("apple")
if value is not None:
    print("キーが存在します")
    # キーが存在する場合の処理を記述する
else:
    print("キーが存在しません")
    # キーが存在しない場合の処理を記述する

上記の例では、appleというキーが辞書に存在するため、キーが存在しますというメッセージが表示されます。

また、get()メソッドの第二引数にデフォルト値を指定することもできます。

キーが存在しない場合には指定したデフォルト値が返されます。

my_dict = {"apple": 100, "banana": 200, "orange": 300}

value = my_dict.get("grape", 0)
if value != 0:
    print("キーが存在します")
    # キーが存在する場合の処理を記述する
else:
    print("キーが存在しません")
    # キーが存在しない場合の処理を記述する

上記の例では、grapeというキーは辞書に存在しないため、デフォルト値として0が返されます。

そのため、キーが存在しませんというメッセージが表示されます。

以上が、キーが存在しない場合の処理方法についての説明です。

in演算子とget()メソッドの違いについては、次の見出しで説明します。

目次から探す