الدرس 10 من 10
الصفوف والمجموعات
- 12 دقيقة
- 5 فحوص
- 3 تلميحات
- إلى المطلوب
هدف الدرس
التفكيك والقيم غير المكرّرة
الشرح
الصفّ (tuple) قائمة لا تتغيّر، مثل point = (4, 9)، وتستعمله لقيم تأتي معًا ولا يُفترض أن تتبدّل، كإحداثيات نقطة أو قيمتين تُرجعهما دالة. وأنفع ما فيه التفكيك (unpacking)، فالسطر x, y = point يوزّع العناصر على المتغيّرات بترتيبها.
وبالتفكيك تستطيع أن تبدّل قيمتين في سطر واحد: a, b = b, a، لأن Python تحسب الطرف الأيمن كاملًا أوّلًا ثم توزّعه، فلا تحتاج إلى متغيّر ثالث.
أما المجموعة (set) فتحفظ كل قيمة مرّة واحدة، لذلك تحذف set(names) الأسماء المكرّرة. وعملياتها تجيب عن أسئلة جاهزة، فـ a & b تعطيك العناصر المشتركة، وa | b تعطيك العناصر كلها، وa - b تعطيك ما في الأولى وحدها. لكن المجموعة بلا ترتيب، فلا تعتمد على ترتيب طباعتها، ورتّبها بـ sorted() إذا أردت عرضها. وانتبه إلى أن {} قاموس فارغ وليست مجموعة، أما المجموعة الفارغة فتكتبها set().
المطلوب
سُجّلت القائمتان بالعكس، فبدّل بين morning وevening في سطر واحد، ثم احسب هذه المجموعات: unique_morning لحضور الصباح بلا تكرار، وboth لمن حضر المحاضرتين، وeveryone لكل من حضر ولو مرّة، وmorning_only لمن حضر الصباح وحده.
الفحوص
5 فحوص- المتغيّران morning وevening تبادلا القيم
- المجموعة unique_morning فيها حضور الصباح بلا تكرار
- المجموعة both فيها من حضر المحاضرتين
- المجموعة everyone فيها كل من حضر ولو مرّة
- المجموعة morning_only فيها من حضر الصباح وحده