الأنماط الخمسة لمعالجة عناصر الحاوية

قد جمعنا الأنماط التي تسير عليها معالجة البيانات؛ تيسيرًا للحفظ حتى تكون ملاحظتها سهلة حين تقرأ نصًّا برمجيًّا، وحتى يكون استظهارك لها بلا تكلُّف:

  1. الترشيح
  2. الترتيب
  3. الاختيار
  4. التحويل
  5. التلخيص

وهذا ليس خاصًّا في بايثون؛ بل هذا ما تكثر الحاجة إليه ويشيع استعماله في تطبيقات كثيرة جدًّا؛ قد تظهر في أسماء مختلفة.

أولاً: الترشيح

الترشيح أن نأخذ من العناصر ما يحقق شرطًا، ونترك ما لا يحققه.

مثال 1: فصل الأرقام إلى سالبة وموجبة

تصور أن لدينا قائمة من الأرقام الموجبة والسالبة، ونريد فصلها لمجموعتين:

نكتب شرط كل مجموعة بعد الحلقة. تشمل المجموعة الأولى الصفر؛ لذا اسمها الأدق هو الأعداد غير السالبة.

مثال 2: فصل الأسعار إلى منخفضة ومتوسطة وعالية

متجر يريد تقسيم أسعاره إلى ثلاث فئات، كما في الرسم:

  • منخفضة حتى 40.
  • متوسطة أعلى من 40 وحتى 100.
  • عالية أعلى من 100.

كل قائمة تختار فئة واحدة. الحد 40 ينتمي إلى الفئة المنخفضة، والحد 100 إلى المتوسطة.

مثال 3: فصل الطلاب إلى مجموعتين

نريد فصل الطلاب الناجحين عن الذين يحتاجون إعادة الاختبار، إذا كانت درجة النجاح 80. تظهر الأسماء والدرجات في صفوف ثنائية أعلى الرسم، وأسماء كل مجموعة تحتها:

نختار الاسم في التعبير، ونفحص الدرجة في الشرط؛ فالنتيجة قائمة أسماء وليست قائمة أزواج.

ثانيًا: الترتيب

الترتيب أن نغيّر مواضع العناصر وفق معيار، مع إبقاء العناصر نفسها.

مثال 1: ترتيب مسافات الرحلات

نريد ترتيب مسافات الرحلات من الأقصر إلى الأطول. يربط كل سهم في الرسم المسافة بموضعها الجديد بعد الترتيب:

مثال 2: ترتيب الأسعار المكتوبة كنصوص

نحوّل الأسعار إلى أعداد قبل ترتيبها؛ ترتيب النصوص يعتمد على الحروف وقد يضع "100" قبل "20".

مثال 3: ترتيب الدرجات الناجحة تنازليًا

نرشّح الدرجات أولًا ثم نرتب الباقي. لا يغيّر sorted القائمة الأصلية.

ثالثًا: الاختيار

الاختيار أن نأخذ عددًا محددًا من العناصر بحسب ترتيبها، مثل أعلى درجتين أو أدناهما.

مثال 1: اختيار الأعلى أو الأدنى

نريد أطول كلمتين وأقصر كلمتين من قائمة تضم خمس كلمات. يظهر في الرسم ترتيب الكلمات من الأطول إلى الأقصر، ثم اختيار أول كلمتين وآخر كلمتين:

مثال 2: أول اسمين بعد التنظيف

نزيل الفراغات باستعمال str.strip، ثم نختار الموضعين الأول والثاني. الحد الأعلى 2 غير داخل في التقطيع.

مثال 3: أرخص سعرين متاحين

الصفر يعني أن المنتج غير متاح. نرشّح الأسعار ثم نرتبها ونختار اثنين؛ إذا بقي سعر واحد فسيكون وحده في النتيجة.

رابعًا: التحويل

التحويل أن نحسب لكل عنصر قيمة تقابله، فيبقى عدد العناصر كما هو.

مثال 1: التخفيضات

نريد حساب سعر كل منتج بعد خصم 20%. يظهر في الرسم السعر الأصلي، وتحته السعر بعد الخصم؛ كل سعر يقابله سعر جديد:

التعبير قبل for يحسب السعر الجديد لكل عنصر في prices.

مثال 2: أطوال الأسماء

كل اسم يقابله طول واحد. يبقى ترتيب العناصر وعددها كما كانا.

مثال 3: درجات النجاح إلى أحكام

نحوّل كل درجة إلى True أو False بدل حذف الدرجات الراسبة؛ لذلك هذا تحويل لا ترشيح.

خامسًا: التلخيص

التلخيص أن نجمع معلومات عن عدة عناصر في قيمة واحدة تصفها.

مثال 1: إحصاء درجات الطلاب

فمثلاً :لدينا درجات ستة طلاب. يظهر في الرسم كيف نلخّصها بالمجموع، وأصغر درجة، وأكبر درجة، وعدد الدرجات:

مثال 2: إجمالي طول الكلمات

نحوّل كل كلمة إلى طولها ثم نلخّص الأطوال في عدد واحد؛ الفرق بين التحويل والتلخيص هو شكل الناتج.

مثال 3: عدد الناجحين

نضيف واحدًا لكل درجة تحقق حد النجاح. عند غياب الناجحين يكون العدد صفرًا.