Python ตอนที่ 134 ดึงข้อมูลจาก Dictionary ด้วยเมธอด setdefault()

เราสามารถใช้เมธอด setdefault() เพื่อเข้าถึงข้อมูลใน Dictionary โดยระบุ key เป็นพารามิเตอร์ โดยจะได้ค่ากลับมาเป็นค่าของข้อมูลตาม key ที่ระบุ แต่ถ้า key ที่ระบุไม่มีอยู่ใน Dictionary ต้นทาง จะเป็นการเพิ่ม key ที่ระบุเข้าไปใน Dictionary ต้นทางแทน

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

dictionary.setdefault(key, value)
  • key คือชื่อคีย์ของข้อมูลที่ต้องการดึงค่าออกมา (จำเป็นต้องระบุ)
  • value (ไม่ระบุก็ได้) คือค่า Default
    • ถ้ามีคีย์ตามที่ระบุอยู่ใน Dictionary ต้นทาง ค่านี้จะไม่มีผลอะไร
    • แต่ถ้าไม่มีคีย์ตามที่ระบุอยู่ใน Dictionary ต้นทาง พารามิเตอร์ที่ระบุ (key & value) จะถูกเพิ่มเข้าไปใน Dictionary ต้นทาง และรีเทิร์นค่า value ที่ระบุกลับออกมา (ค่าเริ่มต้นเป็น None)
phone = {
    "model": "iPhone 14",
    "year": "2022",
    "price": "39,000",
}

item = phone.setdefault("model")
print(item)
  • บรรทัดที่ 7 เรียกใช้เมธอด setdefault() โดยระบุเพียง key อย่างเดียว (ไม่ได้ระบุ value) โดยให้เก็บค่าที่รีเทิร์นออกมาไว้ในตัวแปร item
  • บรรทัดที่ 8 สั่งให้แสดงผลค่าที่รีเทิร์นออกมา

ผลลัพธ์ ได้ค่าข้อมูลใน Dictionary ต้นทาง ตามคีย์ที่กำหนด

iPhone 14

ถ้า key ที่ระบุ ไม่มีอยู่จริงใน Dictionary ต้นทาง จะเป็นการเพิ่ม key ดังกล่าวเข้าไปใน Dictionary ต้นทางแทน (ถ้าไม่ได้ระบุ value ด้วย ค่าเริ่มต้นจะเป็น None)

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

item = phone.setdefault("color")

print("ข้อมูลที่รีเทิร์นออกมา")
print(item)

print("ข้อมูลใน Dictionary ต้นทาง")
print(phone)
  • บรรทัดที่ 7 เรียกใช้เมธอด setdefault() โดยระบุ key ซึ่งไม่มีอยู่จริงใน Dictionary ต้นทาง
  • บรรทัดที่ 10 สั่งให้แสดงผลข้อมูลที่รีเทิร์นออกมา
  • บรรทัดที่ 13 สั่งให้แสดงผลข้อมูลใน Dictionary ต้นทาง เพื่อดูว่ามีการเปลี่ยนแปลงใดหรือไม่

ผลลัพธ์

ข้อมูลที่รีเทิร์นออกมา
None
ข้อมูลใน Dictionary ต้นทาง
{‘model’: ‘iPhone 14’, ‘year’: ‘2022’, ‘price’: ‘39,000’, ‘color’: None}

  • ข้อมูลที่รีเทิร์นกลับออกมาเป็นค่า None เพราะเราเรียกใช้เมธอด setdefault() โดยไม่ได้กำหนดพารามิเตอร์ value
  • ข้อมูลใน Dictionary ต้นทางมีการเปลี่ยนแปลง คือมีข้อมูล 'color':None เพิ่มเข้ามา

ทีนี้ลองเรียกใช้เมธอด setdefault() โดยระบุทั้ง key และ value

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

item = phone.setdefault("color", "red")

print("ข้อมูลที่รีเทิร์นออกมา")
print(item)

print("ข้อมูลใน Dictionary ต้นทาง")
print(phone)
  • บรรทัดที่ 7 เรียกใช้เมธอด setdefault() โดยระบุ key ซึ่งไม่มีอยู่จริงใน Dictionary ต้นทาง และกำหนดค่า value ด้วย
  • บรรทัดที่ 10 สั่งให้แสดงผลข้อมูลที่รีเทิร์นออกมา
  • บรรทัดที่ 13 สั่งให้แสดงผลข้อมูลใน Dictionary ต้นทาง เพื่อดูว่ามีการเปลี่ยนแปลงใดหรือไม่

ผลลัพธ์

ข้อมูลที่รีเทิร์นออกมา
red
ข้อมูลใน Dictionary ต้นทาง
{‘model’: ‘iPhone 14’, ‘year’: ‘2022’, ‘price’: ‘39,000’, ‘color’: ‘red’}

  • ข้อมูลที่รีเทิร์นกลับออกมาเป็น “red” เพราะเราส่งค่านี้เข้าไปเป็นพารามิเตอร์ (และ key ที่ระบุไม่มีอยู่จริงใน Dictionary ต้นทาง)
  • ข้อมูลใน Dictionary ต้นทางมีการเปลี่ยนแปลง คือมีข้อมูล 'color':red เพิ่มเข้ามา