یک دیکشنری شامل اشیای مشابه

مثال قبلی به ذخیره‌سازی اطّلاعاتِ مختلفِ یک شیء می‌پرداخت که موجودی بیگانه‌ای در یک بازی بود. علاوه بر این حالت شما می‌توانید از دیکشنری برای ذخیره کردن یک نوع اطّلاعات در مورد اشیاء مختلف استفاده کنید. مثلاً فرض کنید می‌خواهید از افراد مختلف در مورد زبان برنامه‌نویسی موردعلاقه‌شان نظرسنجی کنید:

1
2
3
4
5
6
favorite_languages = {
    'jen': 'python',
    'sarah': 'c',
    'edward': 'ruby',
    'phil': 'python',
}

هر کدام از کلیدها نام یکی از افراد پاسخ‌دهنده و هر مقدارْ زبان برنامه‌نویسی مورد علاقه‌ی اوست.

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
favorite_languages = {
    'jen': 'python',
    'sarah': 'c',
    'edward': 'ruby',
    'phil': 'python',
}

language = favorite_languages['sarah'].title()

print(f"Sarah's favorite language is {language}.")

خروجی زبان مورد علاقه‌ی سارا را نمایش می‌دهد:

1
Sarah's favorite language is C.

به‌کارگیری get() برای دسترسی به مقدارها

به‌کارگیری کلید‌ها در کروشه برای بازیابی مقدار مورد نظر از دیکشنری یک خطر بالقوّه دارد: اگر کلید درخواستی شما وجود نداشته باشد به خطا برمی‌خورید:

1
2
3
alien_0 = {'color': 'green', 'speed': 'slow'}

print(alien_0['points'])
1
2
3
4
Traceback (most recent call last):
  File "alien_no_points.py", line 2, in <module>
    print(alien_0['points'])
KeyError: 'points'

برای دیکشنری‌ها به طور خاص می‌توانید از متد get() استفاده کنید تا برای مواقعی که کلید درخواستی وجود ندارد مقدارِ پیش‌فرضی برای بازگرداندن تعیین کنید:

1
2
3
4
5
alien_0 = {'color': 'green', 'speed': 'slow'}

point_value = alien_0.get('points', 'No point value assigned.')

print(point_value)

اگر کلید ‘points’ در دیکشنری وجود نداشته باشد، مقدار متناظر آن برگردانده می‌شود. در غیر این صورت مقدار پیش‌فرض تعیین‌شده را خواهید گرفت:

1
No point value assigned.
نکته
اگر نشان‌وند دوم را هنگام فراخوانی get() تعیین نکنید و کلید مورد نظر وجود نداشته باشد، پایتون مقدار None را برمی‌گرداند. مقدار ویژه‌ی None به معنای «وجود نداشتنِ هیچ مقداری» است. این خطا نیست بلکه مقداری ویژه است که فقدان یک مقدار را مشخّص می‌کند.

خودآزمایی

فرد

از یک دیکشنری برای ذخیره‌سازی اطّلاعات مربوط به فردی استفاده کنید که او را می‌شناسید. نام و نام خانوادگی، سن و شهرِ محل زندگی او را ضبط کنید. باید کلیدهایی مانند first_name، last_name، age و city داشته باشید. هر بخشِ اطّلاعاتی را که ذخیره کرده‌اید چاپ کنید.

اعداد محبوب

از یک دیکشنری برای ذخیره کردن اعداد محبوبِ افراد استفاده کنید. پنج نام در نظر بگیرید و آن‌ها را به عنوان کلیدهای یک دیکشنری به کار بگیرید. اعدادی را به عنوان عدد محبوب هر فرد به جای مقدارهای هر کلید در دیکشنری ذخیره کنید. نام هر کس و عدد مورد علاقه‌ی او را چاپ کنید.

واژه‌نامه

دیکشنری پایتون می‌تواند به عنوان دیکشنری (واژه‌نامه‌ی) واقعی به کار رود.

  • پنج واژه‌ی مربوط به برنامه‌نویسی را در نظر بگیرید که در فصل‌های گذشته معنی آن‌ها را آموخته‌اید. از واژه‌ها به عنوان کلید و از معنی آن‌ها به جای مقدار استفاده کرده و آن‌ها را در دیکشنری ذخیره کنید.
  • هر واژه و معنای آن را به شکلی منظّم در خروجی چاپ کنید.