เมื่อใช้ Python Dictionary เราอาจต้องการทราบว่าคีย์ที่กำหนดมีอยู่ใน Dictionary หรือไม่ เนื่องจาก Dictionary เป็นรายการแบบไม่มีลำดับ (unordered) เราไม่สามารถหาค่าได้จากตำแหน่งขององค์ประกอบ ไลบรารีมาตรฐานของ Python จึงให้เมธอดชื่อ has_key() ซึ่งช่วยให้เราหาความมีอยู่ของคีย์ใน Dictionary ได้ เมธอดนี้มีเฉพาะใน Python 2.x เท่านั้น ไม่มีใน Python 3.x
ไวยากรณ์
ด้านล่างคือไวยากรณ์ของเมธอด has_key()
dict.has_key(KeyVal) # KeyVal คือค่าของคีย์ที่ต้องการค้นหา ผลลัพธ์คืนค่า True หรือ False
ใช้คีย์เป็นตัวเลข
ในกรณีที่เราใช้ตัวเลขเป็นคีย์ เราสามารถใช้ค่าตัวเลขใน has_key() ได้โดยตรง
ตัวอย่าง
Dict = { 1: 'python', 2: 'programming', 3: 'language' }
print("Given Dictionary : ")
print(Dict)
# has_key()
print(Dict.has_key(1))
print(Dict.has_key(2))
print(Dict.has_key('python'))
การรันโค้ดข้างต้นจะได้ผลลัพธ์ดังนี้:
Given Dictionary : {1: 'python', 2: 'programming', 3: 'language'}
True
True
False
ใช้สตริงเป็นคีย์
ในกรณีที่เราใช้สตริงเป็นคีย์ เราสามารถใช้ค่าสตริงพร้อมเครื่องหมายคำพูดใน has_key() ได้โดยตรง
ตัวอย่าง
Dict = { 'A': 'Work', 'B': 'From', 'C': 'Home' }
print("Given Dictionary : ")
print(Dict)
# has_key()
print(Dict.has_key('From'))
print(Dict.has_key('A'))
การรันโค้ดข้างต้นจะได้ผลลัพธ์ดังนี้:
Given Dictionary : {'A': 'Work', 'C': 'Home', 'B': 'From'}
False
True
หมายเหตุสำคัญ: ใน Python 3 ให้ใช้ key in dict แทน เช่น 'A' in Dict เนื่องจาก has_key() ถูกลบออกแล้ว