首頁 >後端開發 >Python教學 >在Python字典中執行反向查找時如何處理'KeyError”?

在Python字典中執行反向查找時如何處理'KeyError”?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-14 01:27:111010瀏覽

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中執行反向查找,我們可以使用兩種方法:

方法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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn