به آموزشگاه مجازی سینا خوش آمدید!

آموزش دیکشنری‌های تودرتو در پایتون

امتیاز
(0)

یک دیکشنری در پایتون، می‌تواند حاوی دیکشنری‌های دیگر نیز باشد؛ که به آنها، دیکشنری‌های تودرتو(nested) گفته می‌شود. 

مثال شماره 1

ایجاد یک دیکشنری که حاوی سه دیکشنری می‌باشد:

myfamily = {
  "child1" : {
    "name" : "Emil",
    "year" : 2004
  },
  "child2" : {
    "name" : "Tobias",
    "year" : 2007
  },
  "child3" : {
    "name" : "Linus",
    "year" : 2011
  }
}

print(myfamily)

نتیجه:

{'child1': {'name': 'Emil', 'year': 2004}, 'child2': {'name': 'Tobias', 'year': 2007}, 'child3': {'name': 'Linus', 'year': 2011}}
امتحان کنید

یا اگر بخواهید، می‌توانید سه دیکشنری را در یک دیکشنری جدید اضافه کنید:

مثال شماره 2

در این مثال، ابتدا سه دیکشنری ایجاد می کنیم، سپس یک دیکشنری دیگر ایجاد می‌کنیم که دربردارنده‌ی سه دیکشنری مذکور می باشد:

child1 = {
  "name" : "Emil",
  "year" : 2004
}
child2 = {
  "name" : "Tobias",
  "year" : 2007
}
child3 = {
  "name" : "Linus",
  "year" : 2011
}

myfamily = {
  "child1" : child1,
  "child2" : child2,
  "child3" : child3
}

print(myfamily)

نتیجه:

{'child1': {'name': 'Emil', 'year': 2004}, 'child2': {'name': 'Tobias', 'year': 2007}, 'child3': {'name': 'Linus', 'year': 2011}} 
امتحان کنید

دسترسی به آیتم‌ها در دیکشنری‌های تودرتو

برای دسترسی به آیتم‌های یک دیکشنریِ تودرتو، از نام آن دیکشنری‌ها استفاده می‌کنیم و ابتدا از دیکشنری بیرونی شروع می‌کنیم:

مثال شماره 3

پرینت کردن مقدار name از دیکشنری child2 که در دیکشنری myfamily قرار دارد: 

myfamily = {
  "child1" : {
    "name" : "Emil",
    "year" : 2004
  },
  "child2" : {
    "name" : "Tobias",
    "year" : 2007
  },
  "child3" : {
    "name" : "Linus",
    "year" : 2011
  }
}

print(myfamily["child2"]["name"])

نتیجه:

Tobias
امتحان کنید

حلقه زدن روی دیکشنری‌های تودرتو در پایتون

ما می‌توانیم با استفاده از متد items() به صورت زیر، روی یک دیکشنری تودرتو حلقه(loop) بزنیم:

مثال شماره 2

حلقه زدن روی کلیدها(keys) و مقادیر(values) تمام دیکشنری‌های تودرتو:

myfamily = {
  "child1" : {
    "name" : "Emil",
    "year" : 2004
  },
  "child2" : {
    "name" : "Tobias",
    "year" : 2007
  },
  "child3" : {
    "name" : "Linus",
    "year" : 2011
  }
}

for x, obj in myfamily.items():
    print(x)
    
    for y in obj:
        print(y + ':', obj[y])

نتیجه:

child1
name: Emil
year: 2004
child2
name: Tobias
year: 2007
child3
name: Linus
year: 2011
امتحان کنید

منبع: www.w3schools.com/python

 

  • بازدید: 22

نوشتن دیدگاه

لطفا نظرات خود را بیان کنید. به سوالات در سریع ترین زمان پاسخ داده خواهد شد.اما به نکات زیر توجه کنید:
1. سعی کنید نظرات شما مرتبط با مقاله ی مورد نظر باشد، در غیر این صورت پاسخ داده نخواهد شد.
2. سوالات خود را به صورت کوتاه بیان کنید و از پرسیدن چند سوال به طور همزمان خودداری کنید.
3. سوال خود را به طور واضح بیان کنید و از کلمات مبهم استفاده نکنید.

ارسال