เราสามารถใช้เมธอด 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
เพิ่มเข้ามา