الأنماط الخمسة لمعالجة عناصر الحاوية
قد جمعنا الأنماط التي تسير عليها معالجة البيانات؛ تيسيرًا للحفظ حتى تكون ملاحظتها سهلة حين تقرأ نصًّا برمجيًّا، وحتى يكون استظهارك لها بلا تكلُّف:
- الترشيح
- الترتيب
- الاختيار
- التحويل
- التلخيص
وهذا ليس خاصًّا في بايثون؛ بل هذا ما تكثر الحاجة إليه ويشيع استعماله في تطبيقات كثيرة جدًّا؛ قد تظهر في أسماء مختلفة.
أولاً: الترشيح
الترشيح أن نأخذ من العناصر ما يحقق شرطًا، ونترك ما لا يحققه.
مثال 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: عدد الناجحين
نضيف واحدًا لكل درجة تحقق حد النجاح. عند غياب الناجحين يكون العدد صفرًا.