Path: blob/master/الفصل الثالث-التعامل مع البيانات التجميعية.ipynb
675 views
الفصل الثالث : التعامل مع البيانات التجميعة Collection Data
في الفصل السابق تعلمنا كيفية التعامل مع البيانات الأساسية وكان كل بيان من تلك البيانات يمثل معلومة مستقلة بذاتها. اما في هذا الفصل فسوف نوسع مفهوم البيانات الى نطاق أوسع بحيث يتم ترتيب هذه البيانات الأساسية بطريقة خاصة في مجموعات فتصبح هذه البيانات مستقلة بذاتها.
أهداف الفصل
عند اتمام هذا الفصل يجب ان يكون لديك المام بالآتي:
التعرف على البيانات التجمعية وأنواعها الرئيسية.
معرفة التعامل مع الانواع الأساسية للبيانات التجميعية.
التمييز بين الانواع الأساسية للبيانات التجميعية من خلال معرفة خصائص كل نوع.
التوسع في معرفة البيانات النصية وكيفية التعامل معها.
تعريف البيانات التحميعية
القوائم (lists)
الصفوف (tuples)
القواميس (dictionaries)
المجموعات (sets)
القوائم Lists
القوائم في لغة بايثون هي عبارة عن مجموعة من بيانات مختلطة توضع بين قوسين مربعين ويفصل بين كل بيان وآخر بفاصلة كما في المثال التالي:
أنشاء القوائم
بالاضافة الى الطريقة التي السابقة التي اتبعناها في إنشاء القائمة data هناك طريقة اخرى تعتمد على استخدام الدالة ()list. فمثلا يمكن إنشاء قائمة من نص باستخدام الدالة ()list كما في المثال التالي:
مؤشر القوئم List index
يتم الإشارة الى مكان البيانات في القائمة بارقام صحيحة تسمى مؤشر القائمة List Index تبدأ من اليسار بالقيمة صفر وتتزايد بالقيمة 1. فالقائمة data السابقة يشار الى القيمة الأولى فيها بالرقم 0 والقيمة الثانية بالرقم 1 وهكذا الى نهاية القيم في القائمة كما هو موضح في الجدول التالي.
وللحصول على قيمة معينة من قائمة فإننا نقوم بكتابة اسم القائمة متبوعاً بقوسين مربعين يوضع بينهما رقم مؤشر القائمة. فعلى سبيل المثال عندما نريد القيمة الأولى من قائمة data السابقة فإننا نكتب الكود التالي:
وعندما نريد القيمة الثالثة مثلاً فإننا نكتب الكود التالي:
كما يمكن الإشارة إلى القيم في قائمة من اليمين إلى اليسار أيضاً أي بمعنى آخر من آخر قيمة في القائمة. وللقيام بذلك نقوم باستخدم مؤشر قائمة يبدأ من القيمة 1- ويتناقص بالقيمة 1- كما هو موضح في الجدول التالي:
فللحصول على آخر قيمة في القائمة data السابقة نكتب الكود التالي:
وللحصول على القيمة قبل الأخيرة في قائمة فإننا نستخدم المؤشر 2- داخل القوسين المربعين و 3- للقيمة التي بعدها وهكذا لباقي القيم في القائمة.
العمليات على القوائم
لإضافة بيانات لقائمة قارغة أو قائمة تحتوي على بيانات سابقة يمكن استخدام الدالة ()append بحيث يكون البيان المضاف دائما في آخر القائمة كما في المثال التالي:
لاحظ استخدام النقطة بعد اسم القائمة لتنفيذ الدالة. فهي تعنى قم بإضافة القيمة "Sunday" مثلاً لللقائمة list1.
كما يمكننا أن نغير قيم البيانات داخل قائمة باستخدام معامل الإسناد (=) كما في المثال التالي:
لذلك يطلق على القوائم في بايثون مصطلح mutable أي قابلة للتغيير.
ولمعرفة مؤشر بيان ما داخل قائمة فإننا نستخدم الدالة ()index بحيث نضع البيان المراد معرفة مؤشره داخل قوسي الدالة كما في المثال التالي:
ولمعرفة عدد البيانات في قائمة فإننا نستخدم الدالة ()len كما في المثال التالي:
تجزئة القوائم List Slicing
[ ‘a’ , ’b’ , ’c’ , ’d’ , ’e’ , ’f’’ , ’g’ ] فإننا نقوم بالتالي:
أنشطة استكشافية
الصفوف (tuples)
أنشطة استكشافية
القواميس(dictionaries)
تمارين استكشافية
المجموعات (sets)
- ()intersection_update
- ()difference_update
- ()symmetric_difference_update بدلا من الدوال السابقة للقيام بهذه المهمة كما في الامثلة التالية:
تمارين استكشافية
البيانات النصية (String)
تمارين استكشافية
ملخص الفصل
اكتب الملخص هنا
اسئلة استيعابية
مصدر الاسئلة من 1 الى 6 من موقع pynative.com
https://pynative.com/python-list-exercise-with-solutions/#h-exercise-1-reverse-a-list-in-python
اعكس ترتيب البيانات في القائمة list1؟
أضف عناصر القائمة الثانية list2 إلى عناصر المجموعة الأولى list1؟
أضف البيان 7000 بعد البيان 6000 الموجود في القائمة list1؟
أضف القائمة الفرعية sub_list إلى أعمق قائمة موجودة في القائمة الرئيسية list1 باستخدام الدالة ()extend؟
استبدل القيمة 15 في القائمة list1 بالقيمة 150؟
أحذف آخر بيان في القائمة list1؟
احسب مجموع الأعداد الموجودة في القائمة list1؟
احسب أعلى قيمة في القائمة list1؟
احسب أقل قيمة في القائمة list1؟
احسب عدد العناصر في القائمة list1؟
حول النص name إلى قائمة؟
رتب القائمة list1؟ تصاعدياً؟
رتب القائمة list1 تنازلياً؟
رتب القائمة list1 ابجدياً؟
اضف الرقم 15 قبل البيان الأخير في القائمة list1؟
اكتب كود برمجي يوجد مؤشر القيمة 10 في القائمة list1؟
اكتب قائمة بثلاثة فواكه تحبها؟ قم بطباعة آخر عنصر في القائمة التي كتبتها مرتين مره مستخدماً مؤشر القوائم الموجب ومرة مستخدماً مؤشر القوائم السالب؟
استخرج القائمة ["A", "D", "G"] من القائمة الأساسية letters مستخدماً ما تعلمته من طرق تجزئة القوائم؟
جزأ القائمة letters بحيث ينتج عن عملية التجزئة قائمة تحتوي على جميع الحروف من D الى F؟
أنشئ قائمة فارغة ثم اضف لها ثلاثة من الاطعمة التي تحبها؟