دورة تطوير بايثون المتقدمة
الفصل
>
المستوى
القوائم المتقدمة
إنشاء مجموعة
الهدف
نظّم التوابل الموجودة في الخزانة في فئات مناسبة وخزنها على الرفوف باستخدام المجموعات.
هناك عدة توابل مخزنة في الخزانة، كلها جاهزة للاستخدام لكنها غير منظمة وصعب الوصول إليها. تحتاج إلى توزيعها بشكل صحيح على الرفوف الفارغة المجاورة لها التي تم استنفادها بالفعل.
تم توزيع التوابل على ثلاث (3) قوائم يمكن إعادة تنظيمها باستخدام المجموعات. المجموعات هي قوائم لا تحتوي على عناصر مكررة، ويمكن أيضًا ترتيبها بترتيبات مختلفة ومقارنتها مع المجموعات الأخرى للعثور على عناصر محددة أو إبرازها.
هناك ثلاث قوائم ثابتة مخزنة في الخزانة، وتسمى هذه: condiments1، condiments2 و condiments3. توجه إلى علامة X الضوئية للتحقق من محتويات القوائم باستخدام دالة speak() واجمع القوائم الثلاث باستخدام دالة collect()، مثل: player.speak(condiments1),player.collect(condiments1) .
المجموعات يتم إنشاؤها بكتابة set() مع القائمة أو عناصر القائمة كمعامل، ثم تعيين اسم للمجموعة. أنشئ ثلاث (3) مجموعات باسم: set1، set2 و set3، وقم بتعيينها للقوائم الثابتة المناظرة، على سبيل المثال: set1 = set(condiments1) .
بمجرد جمعها، توجه إلى علامة X الداكنة فوق السجادة الخضراء، وواجه الطاولة وقم بتصفية القوائم عبر المجموعات. استخدم دالة speak() مع جميع المجموعات الثلاث التي أنشأتها للتو، على سبيل المثال: player.speak(set1) .
بعد ذلك، توجه إلى علامة X الداكنة فوق السجادة الزرقاء واجمع العناصر عن طريق التحقق من التوابل الموجودة في جميع القوائم الثلاث. قم بذلك باستخدام طريقة intersection()، التي تتيح لك مقارنة المجموعات والعثور على العناصر الموجودة في الثلاثة. سمِ المجموعة الناتجة duplicates واجمعها، مثل: duplicates = set1.intersection(set2,set3)، واستخدم دالة speak() للتحقق من المجموعة الناتجة.
توجه إلى السجادة الحمراء مع علامة X الداكنة واجمع جميع المجموعات الثلاث في مجموعة واحدة، ويتم ذلك باستخدام طريقة union(). تُستخدم بنفس طريقة intersection() ولكنها بدلاً من ذلك تأخذ جميع العناصر من جميع المجموعات الثلاث وتضعها في مجموعة واحدة بدون أي عناصر مكررة. سمِ المجموعة الناتجة all_items واجمعها، مثل: all_items = set1.union(set2,set3)، واستخدم دالة speak() للتحقق من المجموعة الناتجة.
بمجرد تجميع كل شيء، توجه إلى علامة X الذهبية وواجه الرفوف، واستخدم دالة place() لوضع جميع التوابل في الرف الفارغ لإكمال المستوى، مثل: player.place(all_items) .