Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

เมธอด Dictionary ใน Python: update(), has_key(), fromkeys()

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() ซึ่งถูกลบออกแล้ว