حلقه زدن در یک دیکشنری
یک دیکشنری پایتون میتواند شامل تنها چند جفت کلید-مقدار یا میلیونها عدد از آنها باشد. چون دیکشنری قابلیّت ذخیرهسازی انبوهی از اطّلاعات را دارد، پایتون این امکان را برای شما فراهم میآورد تا در یک دیکشنری حلقه بزنید. میتوانید در تمام جفتهای کلید-مقدار یک دیکشنری، در کلیدها و یا در مقدارهای آن حلقه بزنید.
حلقه زدن در تمام جفتهای کلید-مقدار
دیکشنری زیر نام کاربری، نام و نام خانوادگی یک فرد را ذخیره میکند:
برای نوشتن یک حلقهی for برای دیکشنری، دو متغیّر را نامگذاری میکنیم که کلید و مقدار یک جفت کلید-مقدار را نگهداری میکند. بخش دوم عبارت for در 1، نام دیکشنری را در بر میگیرد که متد items() پس از آن آمده است. این متد لیستی از جفتهای کلید-مقدار برمیگرداند:
برای مثال favorite_languages.py که در صفحهی قبل دیدیم، اگر داخل دیکشنری favorite_languages حلقه بزنید نام هر فرد و زبان برنامهنویسی مورد علاقهی او را به دست میآورید:
حلقه زدن در تمام کلیدهای یک دیکشنری
در صورتی که مقدارهای یک دیکشنری مورد نظر نباشد، استفاده از متد keys() سودمند است:
در واقع هنگام حلقه زدن در یک دیکشنری، رفتار پیشفرض همان حلقه زدن در کلیدها است، پس اگر به جای for name in favorite_languages.keys(): این کد را مینوشتید: for name in favorite_languages: نتیجه یکسان میشد.
در داخل یک حلقه و به کمک کلید فعلی، امکان دسترسی به مقدار آن کلید وجود دارد. اکنون خطاب به دوستان خود پیامی حاوی زبان برنامهنویسی مورد علاقهی آنها چاپ میکنیم:
|
|
همچنین برای این که بفهمید فردی در نظرسنجی شرکت کرده یا نه، میتوانید از متد keys() استفاده کنید:
|
|
حلقه زدن در کلیدهای دیکشنری با یک ترتیب خاص
از پایتون ۳.۷ به بعد حلقه زدن در دیکشنری اعضای آن را به همان ترتیبِ ذخیره شدن باز میگرداند. با این حال گاهی به حلقه زدن در دیکشنری با ترتیبی متفاوت نیاز دارید:
حلقه زدن در تمام مقدارهای یک دیکشنری
اگر بررسی مقدارهای یک دیکشنری برای شما اولویّت بیشتری دارد، میتوانید از متد values() استفاده کنید:
این رویکرد تمام مقدارهای دیکشنری را بیرون میکشد بدون این که به تکراری بودن یا نبودن آنها اهمّیّتی دهد. برای این که زبانهای برنامهنویسی انتخابی را بدون تکرار ببینیم، از مجموعه استفاده میکنیم:
برای ساختن مستقیم یک مجموعه میتوانید از آکُلاد استفاده کرده و اعضا را با کاما از هم جدا کنید:
اشتباه گرفتن مجموعه و دیکشنری به سادگی امکانپذیر است زیرا هر دو در آکُلاد قرار میگیرند. اگر به آکُلادهایی برخوردید که درون آن جفتهای کلید-مقدار نبود، احتمالاً با یک مجموعه سر و کار دارید.
خودآزمایی
واژهنامه ۲
حال که حلقه زدن در دیکشنری را آموختهاید، کد تمرین ۶-۳ را تمیز کنید به طوری که به جای تعدادی print() از یک حلقه برای نمایش کلیدها و مقدارهای دیکشنری استفاده شود. پنج عبارت پایتونی دیگر به واژهنامهی خود بیفزایید.
رودخانهها
یک دیکشنری بسازید که شامل سه رودخانهی اصلی و کشوری که آن رودخانهها در آن جریان دارند، باشد.
- از یک حلقه برای چاپ کردن جملهای در مورد رودخانه استفاده کنید، مثلاً:
The Nile runs through Egypt. - از حلقهای برای چاپ نام تکتکِ رودخانههای داخل دیکشنری استفاده کنید.
- از حلقهای برای چاپ نام تکتکِ کشورهای داخل دیکشنری استفاده کنید.
نظرسنجی
از کد favorite_languages.py استفاده کنید.
- لیستی از افرادی که باید در نظرسنجی شرکت کنند، تهیه کنید که شامل چند نام موجود در دیکشنری و چند نام جدید باشد.
- در لیست افرادی که باید شرکت کنند حلقه بزنید. اگر پیش از این در نظرسنجی شرکت کرده بودند، پیام تشکری خطاب به آنها چاپ کنید. اگر نه پیامی چاپ کنید و از آنها برای شرکت در نظرسنجی دعوت به عمل آورید.