[Python]Dictionary(辞書)の値からキーを取得するには?

python

どうも、ちょげ(@chogetarou)です。

辞書(Dictionary)の値からキーを取得する方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

辞書(Dictionary)の値からキーを取得する方法は、3つあります。

内包表記

1つ目は、内包表記を使う方法です

まず、[]を記述し、[]内でDictionaryのitems()をforループします。

forループの処理で、Dictionaryのキーをそのまま返します。

そして、forループの後にif文を記述します。

if文の条件式では、「value == 値」のように、辞書のvalueと対象の値を比較します。

result = [ key for key,value in dict.items() if value == 4]

上記の[]は、if文で比較した値を持つ全てのキーのリストを生成します。

使用例

numbers = { "one":1, "two":2, "ten":3, "four":4, "five":5, "四":4 }

result = [ key for key,value in numbers.items() if value == 4]

print(result) #['four', '四']

keys() + values()

2つ目は、keys()とvalues()を使う方法です。

まず、list()を呼び出し、引数でDictionaryからkeys()を呼び出します。

次に、上記のlist()の後に[]を記述します。

[]内にlist()を指定し、list()内でvalues()メソッドを呼び出します。

そして、values()メソッドを引数に指定したlist()からindex()メソッドを呼び出します。

index()メソッドの引数に、値を指定します。

#dictの値のキーを取得
result = list(dict.keys())[list(dict.values()).index(値)]

上記のlist()[]は、index()の引数に指定した値を持つキーを返します。

使用例

numbers = { "one":1, "two":2, "three":3, "four":4, "five":5 }

result1 = list(numbers.keys())[list(numbers.values()).index(3)]

result2 = list(numbers.keys())[list(numbers.values()).index(5)]

print(result1) #three
print(result2) #five

for文

3つ目は、for文を使う方法です。

まず、キーを格納するためのリストを用意します。

result = []

次に、Dictionary()のitems()をfor文でループします。

ルー処理で、for文で取得したDictionaryのvalueと特定の値が等しい時の条件式分岐をします。

そして、条件分岐した処理で、用意したリストからappend()メソッドを呼び出します。

append()メソッドの引数に、for文で取得したDictionaryのkeyを指定します。

for key,value in myDict.items():
    if value == 値:
        result.append(key)

上記のfor文は、if文の条件式でDictionaryのvalueと比較した値を、用意したリストに格納します。

使用例

numbers = { "one":1, "two":2, "壱":1, "three":3, "four":4, "five":5 , "first": 1}

result = []

for key,value in numbers.items():
    if value == 1:
        result.append(key)

print(result) #['one', '壱', 'first']

まとめ

辞書(Dictionary)の値(Value)からキー(Key)を取得する方法は、次の3つです。

  • 内包表記を使う方法
  • keys()とvalues()を使う方法
  • for文を使う方法

コメント

タイトルとURLをコピーしました