تو در تو (Nested Dictionaries)
گاهی داخل یک دیکشنری (Dictionary)، چند دیکشنری دیگر می گذاریم. به این ساختار می گوییم «دیکشنری تو در تو». مثل کیف مدرسه که تویش چند کیف کوچکتر داری.
ساخت دیکشنری تو در تو
می توانی مستقیم یک دیکشنری بزرگ بسازی و داخلش چند دیکشنری قرار بدهی.
myfamily = {
"child1": {
"name": "Emil",
"year": 2004
},
"child2": {
"name": "Tobias",
"year": 2007
},
"child3": {
"name": "Linus",
"year": 2011
}
}
ساخت جدا، سپس ترکیب
می توانی بچه ها را جدا بسازی و بعد داخل یک دیکشنری جمع کنی.
child1 = {
"name": "Emil",
"year": 2004
}
child2 = {
"name": "Tobias",
"year": 2007
}
child3 = {
"name": "Linus",
"year": 2011
}
myfamily = {
"child1": child1,
"child2": child2,
"child3": child3
}
دسترسی به آیتم های تو در تو
برای دسترسی، کلید بیرونی و سپس کلید داخلی را بنویس. مثل پوشه در پوشه.
# نام بچه دوم را چاپ کن
print(myfamily["child2"]["name"])
حلقه روی دیکشنری تو در تو
با items() می توانی روی کلیدها و مقادیر بچرخی و به دیکشنری های داخلی برسی.
for x, obj in myfamily.items():
print(x)
for y in obj:
print(y + ":", obj[y])
گام های تمرینی سریع
- سه دیکشنری کوچک برای بچه ها بساز.
- همه را در یک دیکشنری تو در تو جمع کن.
- با کلیدها نام یکی را چاپ کن.
- با حلقه، همه نام ها و سال ها را چاپ کن.
نکته: نام گذاری کلیدها را واضح بگذار تا دسترسی ساده بماند.
جمع بندی سریع
- دیکشنری تو در تو یعنی دیکشنری داخل دیکشنری.
- می توانی مستقیم یا جداگانه بسازی.
- برای دسترسی، از چند کلید پیاپی استفاده کن.
- با
items()روی همه سطوح بگرد.
مطالب مرتبط: کپی دیکشنری ها | حلقه دیکشنری ها | متدهای دیکشنری