
เขียนโปรแกรมภาษา Python ตอนที่ 125 Dictionary ซ้อนกัน
ข้อมูลประเภท Dictionary สามารถเก็บข้อมูลได้ทุกประเภท รวมถึง Dictionary ด้วย นั่นคือเราสามารถเก็บข้อมูลประเภท Dictionary ซ้อนกันได้ เรียกว่า nested dictionaries
ตัวอย่าง
officer = { "firstname" : "Somchai", "lastname" : "Jaidee", "age" : 47, "tels": { "home": "08124561xx", "work": "0254789xx" } } print(officer)
{‘firstname’: ‘Somchai’, ‘lastname’: ‘Jaidee’, ‘age’: 47, ‘tels’: {‘home’: ‘08124561xx’, ‘work’: ‘0254789xx’}}
student1 = { "firstname" : "Somchai", "lastname" : "Jaidee", "age" : 15 } student2 = { "firstname" : "Somying", "lastname" : "Yingruea", "age" : 15 } student3 = { "firstname" : "Somjai", "lastname" : "Saimaya", "age" : 15 } classroom = { "student1": student1, "student2": student2, "student3": student3 } print(classroom)
{‘student1’: {‘firstname’: ‘Somchai’, ‘lastname’: ‘Jaidee’, ‘age’: 15}, ‘student2’: {‘firstname’: ‘Somying’, ‘lastname’: ‘Yingruea’, ‘age’: 15}, ‘student3’: {‘firstname’: ‘Somjai’, ‘lastname’: ‘Saimaya’, ‘age’: 15}}
การเข้าถึงสมาชิกใน Nested Dictionary
การเข้าถึงสมาชิกใน Nested Dictionary หรือดิกชันนารีซ้อนกัน สามารถทำได้โดยอ้างถึงชื่อของ Dictionary ชั้นนอกสุด และระบุชื่อ Dictionary ชั้นในและ Key ของ Dictionary นั้น โดยมีรูปแบบดังนี้
outer["inner"]["key"]
outer
คือ Dictionary ชั้นนอกinner
คือ Dictionary ชั้นในkey
คือคีย์ของค่าที่ต้องการเข้าถึงของดิกชันนารีชั้นใน
student1 = { "firstname" : "Somchai", "lastname" : "Jaidee", "age" : 15 } student2 = { "firstname" : "Somying", "lastname" : "Yingruea", "age" : 15 } student3 = { "firstname" : "Somjai", "lastname" : "Saimaya", "age" : 15 } students = { "student1": student1, "student2": student2, "student3": student3 } std = students["student2"]["firstname"] print(std)
Somying
ถ้ามี Dictionary ซ้อนกันหลายชั้น ก็ให้ระบุ Dictionary ชั้นนอกสุดแล้วก็ชั้นถัดไปตามลำดับจนถึงลำดับที่ต้องการ
student1 = { "firstname" : "Somchai", "lastname" : "Jaidee", "age" : 15, "tels": { "tel1": "xxxxx", "tel2": "yyyyy" } } student2 = { "firstname" : "Somying", "lastname" : "Yingruea", "age" : 15, "tels": { "tel1": "xxxxx", "tel2": "yyyyy" } } student3 = { "firstname" : "Somjai", "lastname" : "Saimaya", "age" : 15, "tels": { "tel1": "xxxxx", "tel2": "yyyyy" } } students = { "student1": student1, "student2": student2, "student3": student3, "tels": { "tel1": "xxxxx", "tel2": "yyyyy" } } print(students["student2"]["tels"]) print(students["student2"]["tels"]["tel1"])
ผลลัพธ์
{‘tel1’: ‘xxxxx’, ‘tel2’: ‘yyyyy’}
xxxxx