ホームページ >バックエンド開発 >Python チュートリアル >Python 辞書で逆引き参照を実行するときに「KeyError」を処理する方法は?

Python 辞書で逆引き参照を実行するときに「KeyError」を処理する方法は?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-14 01:27:111011ブラウズ

How to Handle `KeyError` When Performing Reverse Lookups in Python Dictionaries?

Python 辞書の逆引き: 値によるキーの取得

Python 辞書はキーを対応する値にマッピングする効率的な方法を提供しますが、逆引き参照を実行する必要がある状況も考えられます。これは、値があり、関連付けられたキーを見つける必要があるシナリオで便利です。

質問:

名前を年齢にマッピングする辞書があるとします。 。あなたのタスクは、年齢を入力として受け取り、対応する名前を返す関数を作成することです。ただし、スクリプトで KeyError エラーが発生しており、このケースを処理するためにコードを変更するための支援を求めています。

コード:

dictionary = {'george': 16, 'amber': 19}
search_age = raw_input("Provide age")
for age in dictionary.values():
    if age == search_age:
        name = dictionary[age]
        print name

解決策:

提供されたコードは、辞書の値を反復処理し、辞書の値と比較しようとします。年齢を入力します。一致が見つかった場合、コードは、dictionary[age] を使用して辞書から一致するキーを取得しようとします。ここで KeyError が発生します。

Python で逆引き参照を実行するには、次の 2 つの方法を利用できます。

方法 1:

mydict = {'george': 16, 'amber': 19}
print mydict.keys()[mydict.values().index(16)]  # Prints george

このアプローチには、次を使用してすべてのキーと値のリストを取得することが含まれます。それぞれ mydict.keys() と mydict.values() です。次に、値リストで Index() を使用して入力年齢の位置を見つけ、その位置にあるキーを取得します。

方法 2 (Python 3.x):

mydict = {'george': 16, 'amber': 19}
print(list(mydict.keys())[list(mydict.values()).index(16)])  # Prints george

最初の方法と同様に、このアプローチにはキーと値をリストに変換することが含まれます。ただし、Python 3.x 構文を利用してインデックス作成プロセスを簡素化します。

以上がPython 辞書で逆引き参照を実行するときに「KeyError」を処理する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。