Python ตอนที่ 132 ลบข้อมูลใน Dictionary ด้วยเมธอด pop()

เมธอด pop() ใช้สำหรับลบข้อมูลใน Dictionary ตามคีย์ที่ระบุ โดยจะคืนค่ากลับมาเป็นค่าของข้อมูลที่ถูกลบ (ตามคีย์ที่ระบุ)

รูปแบบการใช้งาน

dictionary.pop(key, defaultvalue)
  • key คือคีย์ของข้อมูลที่ต้องการลบใน Dictionary (จำเป็นต้องระบุ)
  • defaultvalue (ไม่ระบุก็ได้) คือค่าที่ต้องการให้รีเทิร์นกลับออกมาในกรณีที่ไม่มีข้อมูลตาม key ที่ระบุ
phone = {
    "model": "iPhone 14",
    "year": "2022",
    "price": "39,000",
    "color": "white"
}

phone.pop("year")
print(phone)
  • บรรทัดที่ 8 ใช้เมธอด pop() ลบข้อมูลออกจาก Dictionary โดยระบุคีเป็น "year"
  • บรรทัดที่ 9 สั่งให้แสดงข้อมูลใน Dictionary หลังจากลบข้อมูลออกแล้ว

ผลลัพธ์ ข้อมูลที่มีคีย์ "year" ถูกลบออกไปจาก Dictionary

{‘model’: ‘iPhone 14’, ‘price’: ‘39,000’, ‘color’: ‘white’}

ถ้าต้องการทราบว่าข้อมูลใดถูกลบออกจาก Dictionary ให้สร้างตัวแปรขึ้นมารับค่าส่งกลับจากเมธอด pop()

phone = {
    "model": "iPhone 14",
    "year": "2022",
    "price": "39,000",
    "color": "white"
}

removed = phone.pop("year")

print("ข้อมูลที่ถูกลบ")
print(removed)
  • บรรทัดที่ 8 สร้างตัวแปรขึ้นมารับค่าที่รีเทิร์นจากเมธอด pop()
  • บรรทัดที่ 10-11 แสดงข้อมูลที่ถูกลบออก

ผลลัพธ์ จะได้ค่าของข้อมูลที่ถูกลบออกไป

ข้อมูลที่ถูกลบ
2022

ถ้าคีย์ที่ระบุไม่มีอยู่จริงใน Dictionary ต้นทาง จะเกิด Error

phone = {
    "model": "iPhone 14",
    "year": "2022",
    "price": "39,000",
    "color": "white"
}

removed = phone.pop("owner")

print(removed)
  • บรรทัดที่ 8 สั่งให้ลบข้อมูลโดยระบุคีย์เป็น "owner" ซึ่งไม่มีอยู่จริงใน Dictionary ต้นทาง

ผลลัพธ์คือเกิด Error เพราะสั่งให้ลบข้อมูลที่ไม่มีอยู่จริง

วิธีป้องกันคือ ระบุพารามิเตอร์ defaultvalue เพิ่มเข้าไปในเมธอด pop() เพื่อให้คืนค่านี้กลับออกมาในกรณีที่ไม่มีข้อมูลตามคีย์ที่ระบุ

phone = {
    "model": "iPhone 14",
    "year": "2022",
    "price": "39,000",
    "color": "white"
}

removed = phone.pop("owner", "ไม่มีข้อมูลตามที่ระบุ")

print(removed)
  • บรรทัดที่ 8 เรียกใช้เมธอด pop() โดยระบุพารามิเตอร์ defaultvalue (ข้อความ “ไม่มีข้อมูลตามที่ระบุ”) เข้าไปด้วย

ผลลัพธ์ ถ้าไม่มีข้อมูลตามคีย์ที่ระบุ จะไม่เกิด Error แต่จะคืนค่าเป็นข้อความที่ระบุกลับออกมาแทน

ไม่มีข้อมูลตามที่ระบุ