Coding for KidsCoding for Kids
المستويات الإبداعيةالتحدياتدليل المعلم
صوت للميزات
دورة تطوير بايثون المتقدمة
الفصل
>
المستوى

القوائم المتقدمة
إنشاء قائمة متداخلة

الهدف

قم بتخزين التوابل بشكل صحيح في رف التوابل باستخدام القوائم المتداخلة.

أحد رفوف التوابل فارغ ويحتاج إلى إعادة تعبئته بشكل صحيح، فهناك توابل في المخزن ولكن يجب ترتيبها وتنظيمها ووضعها في رف التوابل بشكل مناسب.

نظرًا لكثرة العناصر وحقيقة تخزينها في رفوف مختلفة ضمن رف التوابل، فإن القوائم والقواميس العادية لن تكون كافية. في مثل هذه الحالات يمكنك استخدام القوائم المتداخلة، وهي قوائم تحتوي على قائمة أو أكثر بداخلها.

لتخزين التوابل يجب أولاً الحصول على الجرار لتخزين العناصر بشكل صحيح، اتجه إلى علامة X الذهبية، واجه الصندوق واستخدم الدالة collect() لالتقاط "empty jar" لتسهيل عملية التخزين.

بمجرد جمع الجرار، توجه إلى علامات X الفاتحة الموجودة أمام الصناديق الخشبية. هناك أربعة (4) ثوابت قائمة موجودة في هذا المستوى، واحد لكل صندوق، وهي: crate1، crate2، crate3، و crate4. استخدم الدالة speak() مع هذه الثوابت لتحديد محتوى كل صندوق، حيث تتوافق الثوابت مع الصناديق من اليمين إلى اليسار، على سبيل المثال player.speak(crate1).

بمجرد تحديد محتويات الصناديق، استخدم التعبيرات الشمولية للقوائم لإنشاء قوائم جديدة بدون العناصر غير الضرورية الموجودة داخل الثوابت. إذا كانت محتويات صندوق تشمل: "package" أو "string" أو "stuffing"، استخدم نفس الصيغة كما في الفصل السابق لتنظيم القوائم، على سبيل المثال:

crate1 = ["bay herb", "cilantro herb", "ginger herb", "oregano herb", "string"] herbs = [x for x in crate1 if not "string" in x]

الكود أعلاه سيقوم بإنشاء قائمة جديدة تحتوي على العناصر التي لا تتضمن كلمة "string". يجب أن تُسمى القوائم: herbs، spices، salts و sugars، وستعرف أي قائمة تُمثل ذلك لأن العناصر داخل القوائم تحمل الاسم.

بمجرد إنشاء القوائم الأربعة، حان الوقت لدمجها جميعًا في قائمة متداخلة. أنشئ قائمة باسم seasonings وأضف القوائم التي أنشأتها داخل القائمة الجديدة، مثل:

seasonings = [ ] seasonings.append(herbs) .......

بمجرد تجميع جميع العناصر معًا في القائمة المتداخلة، اتجه إلى علامة X الداكنة على السجادة الخضراء وواجه الرف. استخدم الدالة speak() بالاشتراك مع القائمة المتداخلة seasonings لتأكيد العناصر على كل رف. بعد ذلك، استخدم الدالة place() مع القائمة لاستكمال المستوى، مثل: player.speak(seasonings).

كتاب الكود