Mencari Kunci daripada Nilai dalam Kamus
Anda telah menghadapi cabaran untuk mendapatkan semula nama yang dikaitkan dengan umur tertentu dalam kamus Python. Mari kita mendalami cara anda boleh mencapai perkara ini dengan pendekatan yang lebih cekap.
Isunya
Kod asal anda cuba untuk berulang melalui nilai kamus dan membandingkannya dengan input umur. Walau bagaimanapun, lelaran ke atas nilai sahaja tidak memberikan akses kepada kunci yang sepadan. Ini membawa kepada KeyError yang dihadapi apabila anda cuba mendapatkan semula nama secara langsung.
Penyelesaian
Untuk mencari kunci yang dikaitkan dengan nilai tertentu, gunakan kaedah yang membalikkan hubungan nilai utama. Dalam Python, kaedah dict.keys() dan dict.values() boleh dimanfaatkan untuk mencapainya.
Python 2.x
mydict = {'george': 16, 'amber': 19} print mydict.keys()[mydict.values().index(16)] # Prints 'george'
Dalam Python 2.x, mydict.values() mengembalikan senarai nilai. Dengan menggunakan index(), anda boleh menentukan kedudukan nilai sasaran dalam senarai itu. Kekunci yang sepadan kemudiannya boleh diambil menggunakan mydict.keys()[index].
Python 3.x
mydict = {'george': 16, 'amber': 19} print(list(mydict.keys())[list(mydict.values()).index(16)]) # Prints 'george'
Dalam Python 3.x, kedua-duanya dict .keys() dan dict.values() mengembalikan iterator. Untuk mendapatkan senarai, anda perlu menghantarnya secara eksplisit menggunakan list() seperti yang ditunjukkan di atas.
Kesimpulan
Pendekatan ini membolehkan anda mendapatkan kunci dengan cekap berdasarkan nilai yang diketahui dalam kamus Python. Ingat untuk mempertimbangkan versi Python yang anda gunakan, kerana sintaks mungkin berbeza sedikit antara versi.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencari Kunci Kamus Dengan Cekap Berdasarkan Nilainya dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!