
เขียนโปรแกรมภาษา 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
เพิ่มเข้ามา