เพิ่มข้อมูลในดิกชันนารี 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() หรือทำการตรวจสอบการมีอยู่
เมื่อเลือกใช้วิธีเหล่านี้ให้เหมาะสม การจัดการดิกชันนารีของ Python จะทำได้ราบรื่นยิ่งขึ้น
年収訴求