پیمایش دیکشنری با حلقه در پایتون

Please login to bookmark Close

پیمایش دیکشنری با حلقه

در واقع، در این درس پیمایش دیکشنری با حلقه را از پایه و با مثال یاد می‌گیرید.

بنابراین پیمایش دیکشنری یک تفاوت مهم با لیست دارد: هر عنصر دو بخش دارد، کلید و مقدار. پس اول باید مشخص کنید کدامش را می‌خواهید.

پیمایش کلیدها

person = {"name": "علی", "age": 25, "city": "تهران"}

for key in person:
    print(key)
name
age
city

همچنین، این را خوب به خاطر بسپارید: وقتی مستقیم روی دیکشنری حلقه می‌زنید، پایتون کلیدها را تحویلتان می‌دهد، نه مقادیر را. خیلی‌ها اینجا گیج می‌شوند.

پیمایش مقادیر

for value in person.values():
    print(value)
علی
25
تهران

پیمایش همزمان کلید و مقدار

به این ترتیب، این رایج‌ترین حالت است و متد items برای همین ساخته شده:

for key, value in person.items():
    print(key, "=", value)
name = علی
age = 25
city = تهران

علاوه بر این، اگر درس تاپل را خوانده باشید، اینجا چیز جدیدی رخ نمی‌دهد. متد items در هر دور، یک تاپل دوتایی می‌دهد و شما همان لحظه بازش می‌کنید.

یک مثال کاربردی

scores = {"علی": 18, "زهرا": 12, "رضا": 9}

for name, score in scores.items():
    if score >= 10:
        print(name, "قبول شد")
    else:
        print(name, "مردود شد")
علی قبول شد
زهرا قبول شد
رضا مردود شد

اشتباهات رایج

تصور اینکه حلقه مقادیر را می‌دهد

for item in scores:
    print(item + 5)
TypeError: can only concatenate str (not "int") to str

در نهایت، چون item کلید است و کلیدها اینجا رشته‌اند.

حذف کلید حین پیمایش

for name in scores:
    if scores[name] < 10:
        del scores[name]
RuntimeError: dictionary changed size during iteration

خوشبختانه پایتون اینجا برخلاف لیست، صریحاً خطا می‌دهد. راه درست این است که روی یک کپی حرکت کنید:

for name in list(scores.keys()):
    if scores[name] < 10:
        del scores[name]

جمع‌بندی

حلقه‌ی ساده روی دیکشنری، کلیدها را می‌دهد. برای مقادیر از values و برای هر دو از items استفاده کنید.

در درس بعدی یاد می‌گیرید دیکشنری را مرتب کنید؛ چه بر اساس کلید و چه بر اساس مقدار.

برای مطالعه‌ی بیشتر می‌توانید به مستندات رسمی پایتون سر بزنید.

این درس بخشی از دوره آموزش پایتون مقدماتی است.

Please login to bookmark Close
پیشرفت شما در «دوره آموزش پایتون مقدماتی» (64%)
نظرات

دیدگاهتان را بنویسید

64%
پیشرفت

سرفصل دوره

فهرست مطالب

سرفصل دوره

تمرین

این قسمت تمرین ندارد!

پاسخ تمرین ها

هنوز برای تمرین‌های این قسمت پاسخی ثبت نشده است!

اشتراک گذاری

چرا بهتره از فیلترشکن استفاده کنید؟

من همه ویدئو ها و پادکست های کُدباز رو توی یوتیوب و ساندکلود و پلتفرم هایی آپلود می‌کنم که اغلب فیلتر هستند.

اغلب آموزش‌ها ویدئو و پادکست دارند. پس اگر می‌خواهید از محتوای سایت بیشترین استفاده رو ببرید نیاز به فیلتر شکن دارید.

توجه داشته باشید که برای خرید از فروشگاه بهتره فیلتر شکن رو خاموش کنید.

تنظیمات

انتخاب زبان
تغییر تم