ข้อมูลประเภท 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