Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mengendalikan `KeyError` Apabila Melakukan Carian Terbalik dalam Kamus Python?

Bagaimana untuk Mengendalikan `KeyError` Apabila Melakukan Carian Terbalik dalam Kamus Python?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-14 01:27:111015semak imbas

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

Cari Terbalik dalam Kamus Python: Mendapatkan Kekunci Mengikut Nilai

Walaupun kamus Python menyediakan cara yang cekap untuk memetakan kunci kepada nilai yang sepadan, terdapat mungkin situasi di mana anda perlu melakukan carian terbalik. Ini boleh berguna untuk senario di mana anda mempunyai nilai dan perlu mencari kunci yang berkaitan.

Soalan:

Andaikan anda mempunyai kamus yang memetakan nama mengikut peringkat umur . Tugas anda adalah untuk mencipta fungsi yang mengambil umur sebagai input dan mengembalikan nama yang sepadan. Walau bagaimanapun, skrip anda menghadapi ralat KeyError dan anda sedang mencari bantuan dalam mengubah suai kod untuk mengendalikan kes ini.

Kod:

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

Penyelesaian:

Kod yang disediakan cuba untuk lelaran melalui nilai kamus dan membandingkannya dengan input umur. Jika padanan ditemui, kod tersebut cuba mendapatkan semula kunci padanan daripada kamus menggunakan kamus[umur], di mana KeyError berlaku.

Untuk melakukan carian terbalik dalam Python, kami boleh menggunakan dua kaedah:

Kaedah 1:

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

Pendekatan ini melibatkan mendapatkan senarai semua kunci dan nilai menggunakan mydict.keys() dan mydict.values(), masing-masing. Kami kemudian menggunakan index() pada senarai nilai untuk mencari kedudukan umur input dan mendapatkan kunci pada kedudukan itu.

Kaedah 2 (Python 3.x):

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

Sama seperti kaedah pertama, pendekatan ini melibatkan penukaran kunci dan nilai kepada senarai. Walau bagaimanapun, ia memanfaatkan sintaks Python 3.x untuk memudahkan proses pengindeksan.

Atas ialah kandungan terperinci Bagaimana untuk Mengendalikan `KeyError` Apabila Melakukan Carian Terbalik dalam Kamus Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn