Dictionary ใน Python เป็นหนึ่งในชนิดข้อมูลแบบคอลเลกชันที่ใช้บ่อยที่สุด แสดงอยู่ในรูปแบบคู่คีย์-ค่า (key-value pairs) คีย์จะถูกจัดทำดัชนีแต่ค่าอาจไม่ได้ มีฟังก์ชันสำเร็จรูปใน Python หลายตัวที่ทำให้การใช้ Dictionary ง่ายขึ้นในโปรแกรมต่างๆ ในหัวข้อนี้ เราจะดูเมธอดในตัว (built-in methods) 3 ตัว ได้แก่ update(), has_key() และ fromkeys()
update()
เมธอด update() เพิ่มรายการใหม่เข้าไปใน Dictionary ที่กำหนดโดยการรวมรายการจาก Dictionary ที่สองเข้ากับ Dictionary แรก
ไวยากรณ์
dict1.update(dict2) # dict1 และ dict2 คือ Dictionary สองตัวที่เป็นอินพุต
ในตัวอย่างด้านล่าง เราเห็นคู่ของ Dictionary Dictionary ที่สองจะถูกเพิ่มเข้าไปในรายการของ Dictionary แรก แต่ชื่อคีย์ควรแตกต่างกันใน Dictionary ที่สองเพื่อให้เห็นผลของการรวม (merge) อย่างชัดเจน
ตัวอย่าง
dict1 = {'Place': 'Delhi', 'distance': 137}
dict2 = {'Temp': 41}
dict1.update(dict2)
print(dict1)
การรันโค้ดข้างต้นจะได้ผลลัพธ์ดังนี้:
{'Place': 'Delhi', 'distance': 137, 'Temp': 41}
has_key()
เมธอดนี้ตรวจสอบว่าคีย์อยู่ใน Dictionary หรือไม่ เมธอดนี้มีเฉพาะใน Python 2 เท่านั้น ไม่พร้อมใช้งานใน Python 3
ไวยากรณ์
dict.has_key(key)
ในตัวอย่างด้านล่าง เราตรวจสอบความมีอยู่ของบางคีย์ใน Dictionary ที่กำหนด
ตัวอย่าง
dict1 = {'Place': 'Delhi', 'distance': 137}
dict2 = {'Temp': 41}
print(dict1.has_key('Place'))
print(dict2.has_key('Place'))
การรันโค้ดข้างต้นจะได้ผลลัพธ์ดังนี้:
ผลลัพธ์
True False
dict.fromkeys(seq[, value])
เมธอดนี้แปลงลำดับของค่า (sequence) ให้เป็น Dictionary เราสามารถระบุค่า (value) ที่จะกลายเป็นส่วนหนึ่งของทุกคีย์ได้
ไวยากรณ์
dict.fromkeys(seq)
ในตัวอย่างด้านล่าง เราสร้าง Dictionary จากลำดับและเพิ่มค่าเข้าไป
ตัวอย่าง
seq = {'Distance', 'Temp', 'Humidity'}
dict = dict.fromkeys(seq)
print(dict)
dict = dict.fromkeys(seq, 15)
print(dict)
การรันโค้ดข้างต้นจะได้ผลลัพธ์ดังนี้:
ผลลัพธ์
{'Distance': None, 'Humidity': None, 'Temp': None}
{'Distance': 15, 'Humidity': 15, 'Temp': 15}
หมายเหตุ: ใน Python 3 ควรใช้ key in dict แทน has_key() ซึ่งถูกลบออกแล้ว