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