الدرس 9 من 10
القواميس والمفاتيح
- 13 دقيقة
- 5 معايير للتصحيح
- 3 تلميحات
- إلى المطلوب
هدف الدرس
ابحث بالمفتاح لا بالموضع
الشرح
القاموس يربط مفتاحًا بقيمة: stock = {"قلم": 12, "دفتر": 5}. تصل إلى القيمة باسمها لا بموضعها: stock["قلم"]، وتضيف أو تغيّر بالإسناد نفسه: stock["مسطرة"] = 7. وهذا أسرع وأوضح من البحث في قائمة كلما أردت قيمة.
وupdate تدمج قاموسًا في آخر دفعة واحدة: المفتاح الموجود تُستبدل قيمته، والجديد يُضاف. وitems() تعطيك المفتاح والقيمة معًا في الحلقة: for item, qty in stock.items():.
والفخّ: stock["حقيبة"] لمفتاح غير موجود ترمي KeyError وتوقف البرنامج. حين يكون الغياب محتملًا فاسأل أوّلًا بـ "حقيبة" in stock، أو اطلب بـ stock.get("حقيبة", 0): تُرجع القيمة إن وُجدت والافتراضي إن لم توجد، ولا تضيف شيئًا إلى القاموس.
المطلوب
جاء جرد جديد: حدّث stock بـ update ليصير الدفتر 20 وتدخل المسطرة بـ 7. ثم bags: كمية «حقيبة» بـ get وافتراضيها 0. ثم available: قائمة بأسماء ما كميته أكبر من صفر، بترتيب القاموس.
معايير التصحيح
5 معايير- الدفتر صار 20 والمسطرة دخلت بـ 7
- القلم والممحاة كما كانا
- bags صفر لصنف غير موجود
- السؤال لم يُضف «حقيبة» إلى stock
- available فيها المتوفّر وحده بترتيبه