目次
- 1 2. วิธีพื้นฐานในการเพิ่มองค์ประกอบให้พจนานุกรมของ Python
1. พจนานุกรม (ดิกชันนารี) ของ Python คืออะไร
พจนานุกรม (ดิกชันนารี) ของ Python เป็นชนิดข้อมูลที่เก็บคู่ของคีย์และค่า ทำให้สามารถจัดการข้อมูลได้อย่างมีประสิทธิภาพมาก แตกต่างจากลิสต์หรือทูเพิล พจนานุกรมจะไม่คงลำดับ แต่มีจุดเด่นที่สามารถดึงค่าได้อย่างรวดเร็วด้วยการใช้คีย์ จัดเป็นหนึ่งในชนิดข้อมูลที่ใช้บ่อยในโปรแกรม Pythonคุณลักษณะพื้นฐานของพจนานุกรม
- คู่คีย์และค่า: พจนานุกรมประกอบด้วยคีย์ที่ไม่ซ้ำกันและค่าที่สอดคล้องกัน คีย์ต้องเป็นชนิดที่เปลี่ยนแปลงไม่ได้ (เช่น สตริงหรือจำนวน) ส่วนค่าสามารถเป็นชนิดใดก็ได้
- ไม่มีลำดับ: พจนานุกรมของ Python ไม่มีลำดับการเก็บ ดังนั้นจึงค้นหาค่าด้วยการระบุคีย์
- การอ้างอิงค่า: สามารถอ้างอิงค่าได้อย่างรวดเร็วด้วยการระบุคีย์
ตัวอย่างการสร้างพจนานุกรม
ในตัวอย่างต่อไปนี้จะแสดงวิธีพื้นฐานในการสร้างพจนานุกรมและดึงค่าด้วยคีย์การสร้างพจนานุกรม
my_dict = {
"apple": "แอปเปิล",
"banana": "กล้วย",
"cherry": "เชอร์รี่"
}
การดึงค่า
print(my_dict["apple"]) # ผลลัพธ์: แอปเปิล
2. วิธีพื้นฐานในการเพิ่มองค์ประกอบให้พจนานุกรมของ Python
ใน Python เมื่อจะเพิ่มองค์ประกอบให้กับพจนานุกรมที่มีอยู่ จะใช้คำสั่งกำหนดค่าอย่างง่าย วิธีนี้เข้าใจได้ไม่ยากและเป็นธรรมชาติแม้สำหรับผู้เริ่มต้นใช้พจนานุกรมวิธีพื้นฐานในการเพิ่มองค์ประกอบ
รูปแบบในการเพิ่มองค์ประกอบใหม่ให้พจนานุกรมมีดังนี้การเพิ่มองค์ประกอบใหม่
my_dict["orange"] = "ส้ม"
print(my_dict)
ผลลัพธ์: {'apple': 'แอปเปิล', 'banana': 'กล้วย', 'cherry': 'เชอร์รี่', 'orange': 'ส้ม'}
วิธีนี้ หากคีย์ที่ระบุยังไม่มีอยู่ จะมีการเพิ่มองค์ประกอบใหม่ แต่หากใช้คีย์ที่มีอยู่แล้ว ค่านั้นจะถูกเขียนทับ ต้องระวังประเด็นนี้การเขียนทับเมื่อใช้คีย์เดียวกัน
เมื่อต้องการเพิ่มค่าด้วยคีย์ที่มีอยู่ในพจนานุกรม ค่านั้นจะถูกเขียนทับmy_dict["banana"] = "น้ำกล้วย"
print(my_dict)
ผลลัพธ์: {'apple': 'แอปเปิล', 'banana': 'น้ำกล้วย', 'cherry': 'เชอร์รี่', 'orange': 'ส้ม'}
ดังที่เห็น ค่าของคีย์"banana"
ที่มีอยู่เดิมถูกเปลี่ยนแปลง และค่าดั้งเดิมถูกเขียนทับแล้ว
3. วิธีเพิ่มรายการลงในพจนานุกรมโดยหลีกเลี่ยงการเขียนทับ
หากต้องการหลีกเลี่ยงการเขียนทับ ให้ใช้เมธอดsetdefault()
เมธอดนี้จะเพิ่มรายการใหม่เมื่อคีย์ที่ระบุยังไม่มีอยู่ในพจนานุกรมเท่านั้น จึงไม่ต้องกังวลว่าจะเผลอเขียนทับค่าตัวอย่างการใช้ setdefault()
โค้ดต่อไปนี้สาธิตวิธีใช้setdefault()
เพื่อเพิ่มรายการใหม่โดยไม่เขียนทับรายการที่มีอยู่my_dict.setdefault("banana", "สมูทตี้กล้วย")
my_dict.setdefault("grape", "องุ่น")
print(my_dict)
ผลลัพธ์: {'apple': 'แอปเปิล', 'banana': 'น้ำกล้วย', 'cherry': 'เชอร์รี', 'orange': 'ส้ม', 'grape': 'องุ่น'}
ในตัวอย่างนี้ คีย์ "banana"
มีอยู่แล้ว ค่าจึงไม่ถูกเขียนทับ และมีการเพิ่มเฉพาะคีย์ใหม่ "grape"
เท่านั้น4. วิธีรวมดิกชันนารีหลายตัวเข้าด้วยกันและเพิ่มรายการ
เมื่อต้องการรวมดิกชันนารีหลายตัวให้เป็นหนึ่งเดียว สามารถใช้update()
เมธอดได้ วิธีนี้ช่วยให้เพิ่มรายการจากดิกชันนารีอีกตัวได้แบบรวดเดียว ทำให้จัดการข้อมูลได้อย่างมีประสิทธิภาพupdate()
ตัวอย่างการใช้งานของเมธอด
ด้านล่างนี้เป็นตัวอย่างการรวมดิกชันนารี 2 ตัวด้วย update()
เมธอดdict1 = {"a": 1, "b": 2}
dict2 = {"b": 3, "c": 4}
dict1.update(dict2)
print(dict1)
ผลลัพธ์: {'a': 1, 'b': 3, 'c': 4}
ในตัวอย่างนี้ คีย์ "b"
มีอยู่ในดิกชันนารีทั้งสอง ดังนั้นค่าของ dict1
จึงถูกเขียนทับด้วยค่าของ dict2
คีย์ใหม่ "c"
จะถูกเพิ่มเข้าไปใน dict1
วิธีหลีกเลี่ยงการเขียนทับ
หากต้องการรวมดิกชันนารีโดยหลีกเลี่ยงการเขียนทับ สามารถใช้setdefault()
ร่วมกับลูป for ได้for key, value in dict2.items():
dict1.setdefault(key, value)
print(dict1)
ผลลัพธ์: {'a': 1, 'b': 2, 'c': 4}

5. เทคนิคเชิงประยุกต์: เพิ่มรายการแบบมีเงื่อนไข
ในการพัฒนาจริง อาจมีกรณีที่ต้องเพิ่มรายการลงในดิกชันนารีตามเงื่อนไข ตัวอย่างเช่น หากต้องการเพิ่มเฉพาะรายการที่ตรงตามเงื่อนไขที่กำหนดลงในดิกชันนารี ก็สามารถใช้คำสั่งif
และลูป for
เพื่อเพิ่มรายการแบบไดนามิกได้ตัวอย่างการเพิ่มรายการแบบมีเงื่อนไข
โค้ดต่อไปนี้เป็นตัวอย่างที่เพิ่มเฉพาะผลไม้ที่มีราคาเป็นไปตามเกณฑ์ที่กำหนดลงในดิกชันนารีitems = [("apple", 100), ("banana", 150), ("cherry", 200)]
fruit_dict = {}
for fruit, price in items:
if price > 120:
fruit_dict[fruit] = price
print(fruit_dict)
ผลลัพธ์: {'banana': 150, 'cherry': 200}
ในตัวอย่างนี้ จะเพิ่มเฉพาะผลไม้ที่มีราคามากกว่า 120 ลงในดิกชันนารีเท่านั้น เมื่อเพิ่มรายการลงในดิกชันนารีแบบมีเงื่อนไข ก็สามารถประมวลผลได้อย่างยืดหยุ่นเช่นนี้6. การจัดการข้อผิดพลาดเมื่อทำงานกับดิกชันนารี
ข้อผิดพลาดที่พบได้บ่อยเมื่อทำงานกับดิกชันนารีคือKeyError
เมื่อคีย์ที่ระบุไม่มีอยู่ในดิกชันนารี ข้อผิดพลาดนี้จะเกิดขึ้น เพื่อหลีกเลี่ยงข้อผิดพลาด โดยทั่วไปนิยมตรวจสอบการมีอยู่ของคีย์ก่อน หรือใช้เมธอด get()
วิธีหลีกเลี่ยง KeyError
ตัวอย่างต่อไปนี้แสดงวิธีหลีกเลี่ยงข้อผิดพลาดโดยใช้เมธอด get()
value = my_dict.get("pear", "ไม่พบคีย์")
print(value)
ผลลัพธ์: ไม่พบคีย์
ดังนี้ แม้จะเข้าถึงคีย์ที่ไม่มีอยู่ก็จะไม่เกิดข้อผิดพลาด และจะคืนค่าดีฟอลต์ให้
7. สรุป: แนวปฏิบัติที่ดีที่สุดสำหรับการเพิ่มข้อมูลในดิกชันนารี
วิธีการเพิ่มองค์ประกอบให้ดิกชันนารีของ Python มีหลากหลาย ตั้งแต่การเพิ่มแบบง่ายไปจนถึงการผสานที่ซับซ้อนหรือการเพิ่มแบบมีเงื่อนไข การคำนึงถึงประเด็นต่อไปนี้จะช่วยให้การจัดการดิกชันนารีมีประสิทธิภาพยิ่งขึ้น- การเพิ่มแบบพื้นฐาน: ใช้
[คีย์] = ค่า
เพื่อเพิ่มอย่างง่าย - หลีกเลี่ยงการเขียนทับ: ใช้
setdefault()
เพื่อป้องกันการเขียนทับโดยไม่ตั้งใจ - ผสานดิกชันนารีหลายชุด: เพิ่มองค์ประกอบอย่างมีประสิทธิภาพด้วย
update()
- การจัดการข้อผิดพลาด: เพื่อหลีกเลี่ยง
KeyError
ให้ใช้get()
หรือทำการตรวจสอบการมีอยู่