ได้ Dictionary และค่า (value) ต้องการหาคีย์ (key) ที่สอดคล้อง (Reverse Lookup)
วิธี 1: ใช้ list.index() บน keys และ values
dictA = {"Mon": 3, "Tue": 11, "Wed": 8}
keys = list(dictA.keys())
vals = list(dictA.values())
print(keys[vals.index(11)]) # Tue
print(keys[vals.index(8)]) # Wed
# One-liner:
print(list(dictA.keys())[list(dictA.values()).index(3)]) # Mon
วิธี 2: ใช้ items() วนลูป (รองรับหลายคีย์ค่าเดียวกัน)
dictA = {"Mon": 3, "Tue": 11, "Wed": 8}
def get_key(val):
for k, v in dictA.items():
if v == val:
return k
return "key doesn't exist"
print(get_key(11)) # Tue
print(get_key(3)) # Mon
print(get_key(10)) # key doesn't exist
สรุป
- วิธี 1: ใช้ได้ก็ต่อเมื่อค่าไม่ซ้ำกัน (unique values)
- วิธี 2: ยืดหยุ่นกว่า คืนคีย์แรกที่เจอ