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

Pythonで辞書の値から対応するキーを取得する方法

Pythonの辞書において、特定の値に関連付けられたキーを取得したい場合、リストの「index」メソッドを活用することで簡単に実現できます。

以下に具体的な実装例を示します。

サンプルコード

my_dict = {"Hi":100, "there":121, "Mark":189}
print("The dictionary is :")
print(my_dict)

dict_key = list(my_dict.keys())
print("The keys in the dictionary are :")
print(dict_key)
dict_val = list(my_dict.values())
print("The values in the dictionary are :")
print(dict_val)

my_position = dict_val.index(100)
print("The value at position 100 is : ")
print(dict_key[my_position])

my_position = dict_val.index(189)
print("The value at position 189 is")
print(dict_key[my_position])

実行結果

The dictionary is :
{'Hi': 100, 'there': 121, 'Mark': 189}
The keys in the dictionary are :
['Hi', 'there', 'Mark']
The values in the dictionary are :
[100, 121, 189]
The value at position 100 is :
Hi
The value at position 189 is
Mark

コードの解説

  • まず辞書を定義し、その内容をコンソールに表示します。

  • 「.keys()」メソッドで辞書のすべてのキーにアクセスし、list関数でリストに変換して変数に代入します。

  • 同様に「.values()」メソッドで辞書のすべての値にアクセスし、リストに変換して別の変数に代入します。

  • 値のリストに対して「index()」メソッドを呼び出すことで、目的の値が格納されている位置(インデックス)を取得します。

  • 取得したインデックスを使ってキーのリストから該当するキーを取り出し、結果として表示します。

補足:リスト内包表記を使った代替手法

より簡潔に記述したい場合は、リスト内包表記を利用する方法もおすすめです。

my_dict = {"Hi":100, "there":121, "Mark":189}
keys = [k for k, v in my_dict.items() if v == 100]
print(keys)  # 出力: ['Hi']

この方法なら、値が重複している場合でも該当するすべてのキーを一度に取得できるというメリットがあります。一方、「index」メソッドを使う手法では、同じ値が複数存在する場合、最初に見つかった位置に対応するキーのみが返される点に注意してください。

  1. Pythonで辞書のすべての値を取得・出力する方法

    Pythonの辞書(dict)オブジェクトには、すべての値を簡単に取得できるvalues()メソッドが標準で用意されています。このメソッドを呼び出すと、辞書に格納された全ての値が dict_values オブジェクトとして返されます。values()メソッドを使う基本的な方法以下の例では、辞書 D1 のすべての値を values() メソッドで取得しています。戻り値はビューオブジェクトのため、リストとして扱いたい場合は list() 関数で変換すると便利です。>>> D1 = {1:a, 2:b, 3:c} >>> D1.values() dict_valu

  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]