بايثونالكلاس set
- مفهوم الكلاس set
- حذف الـ set بواسطة الجملة del
- التشييك على قيم الـ set بواسطة العامل in
- دوال الكلاس set
- دوال جاهزة في بايثون للتعامل مع الـ set
مفهوم الكلاس set
الـ set عبارة عن مصفوفة ليس لها حجم ثابت, يمكنها تخزين قيم من مختلف الأنواع في وقت واحد, و لا يمكن تبديل أو حذف قيمها بشكل مباشر.
كما أنه لا يمكنها أن تحتوي على قيم مكررة. أي إذا وضعت فيها نفس القيمة مرتين فإنه سيتم تخزين قيمة واحدة فيها و ليس قيمتين.
النوع set لا يحافظ على الترتيب الذي تم فيه إدخال العناصر لأنه لا يضيف رقم Index لكل عنصر كما يفعل النوع list و النوع tuple.
لذلك لا تستغرب إذا قمت بتخزين مجموعة قيم بداخل set ثم حاولت عرضها. لأنك في كل مرة ستقوم فيها بتشغيل البرنامج من جديد ستتبدل أماكن القيم.
طريقة تعريف set
لتعريف set نستخدم الرمز { }.
بداخل هذا الرمز يمكنك تمرير القيم بشكل مباشر له بشرط وضع فاصلة بين كل عنصرين.
في المثال التالي قمنا بتعريف set وضعنا فيه أعداد صحيحة.
المثال الأول
سنحصل على نتيجة تشبه النتيجة التالية عند التشغيل لأننا لا نعرف كيف سيتم ترتيب العناصر.
في المثال التالي قمنا بتعريف set وضعنا فيه نصوص.
المثال الثاني
سنحصل على نتيجة تشبه النتيجة التالية عند التشغيل لأننا لا نعرف كيف سيتم ترتيب العناصر.
في المثال التالي قمنا بتعريف set وضعنا فيه أعداد صحيحة و نصوص.
المثال الثالث
سنحصل على نتيجة تشبه النتيجة التالية عند التشغيل لأننا لا نعرف كيف سيتم ترتيب العناصر.
في المثال التالي قمنا بتعريف set وضعنا فيه نصوص و قمنا بتكرار هذه النصوص عن قصد لإثبات فكرة أن النوع set لا يقوم بتخزين نفس القيمة أكثر من مرة.
المثال الرابع
سنحصل على نتيجة تشبه النتيجة التالية عند التشغيل لأننا لا نعرف كيف سيتم ترتيب العناصر.
حذف الـ set بواسطة الجملة del
الجملة del تستخدم لحذف الـ set كما هي من الذاكرة.
في المثال التالي قمنا بتعريف set وضعنا فيه أرقام. بعدها قمنا بحذفه من الذاكرة. بعدها حاولنا أن نعرض ما يحتويه.
مثال
سنحصل على النتيجة التالية عند التشغيل.
التشييك على قيم الـ set بواسطة العامل in
العامل in يستخدم للبحث في الـ set عن قيمة معينة أو للمرور على قيمه عند إستخدامه في الحلقة for.
في المثال التالي إستخدمنا العامل in للبحث في الـ set عن قيمة معينة.
المثال الأول
سنحصل على النتيجة التالية عند التشغيل.
True
في المثال التالي قمنا بتعريف set وضعنا فيه نصوص. بعدها قمنا بعرض جميع القيم الموضوعة فيه باستخدام الحلقة for.
المثال الثاني
سنحصل على نتيجة تشبه النتيجة التالية عند التشغيل لأننا لا نعرف كيف سيتم ترتيب العناصر.
Salem
Mhamad
Rami
Sara
دوال الكلاس set
إسم الدالة مع تعريفها | |
---|---|
1 | add(elem)
تستخدم لإضافة عنصر جديد في الـset الذي قام باستدعائها. شاهد المثال |
2 | discard(elem)
تستخدم لحذف عنصر محدد من الـset الذي قام باستدعائها. مكان الباراميتر elem نمرر كائن قيمته تطابق قيمة العنصر الذي نريد حذفه. شاهد المثال |
3 | remove(elem)
تستخدم لحذف عنصر محدد من الـset الذي قام باستدعائها. مكان الباراميتر elem نمرر كائن قيمته تطابق قيمة العنصر الذي نريد حذفه. ملاحظة: الفرق بينها و بين الدالة discard() أنها ترمي الإستثناء KeyError في حال لم يتم إيجاد عنصر في الـset يملك نفس قيمة الكائن الذي مررناه مكان الباراميتر elem. شاهد المثال |
4 | clear()
تستخدم لحذف جميع عناصر الـset الذي قام باستدعائها. شاهد المثال |
5 | pop()
تستخدم لإرجاع قيمة عنصر يتم إختياره بشكل عشوائي من الـset الذي قام باستدعائها, بعدها يتم حذفه منه. شاهد المثال |
6 | copy()
ترجع نسخة من الـset الذي قام باستدعائها. شاهد المثال |
7 | difference(*sets)
ترجع set جديد يحتوي على العناصر الموجودة في الـset الذي قام باستدعائها و الغير موجودة في كل set نمرره لها مكان الباراميتر sets*. شاهد المثال |
8 | difference_update(*sets)
تقارن الـset الذي قام باستدعائها مع كل set نمرره لها مكان الباراميتر sets*. بعدها تحذف من الـset الذي قام باستدعائها العناصر المشتركة بينهم. شاهد المثال |
9 | intersection(*sets)
ترجع set جديد يحتوي على العناصر الموجودة في الـset الذي قام باستدعائها و في كل set نمرره لها مكان الباراميتر sets*. شاهد المثال |
10 | intersection_update(*sets)
تقارن الـset الذي قام باستدعائها مع كل set نمرره لها مكان الباراميتر sets*. بعدها تحذف من الـset الذي قام باستدعائها العناصر الغير مشتركة بينهم. شاهد المثال |
11 | symmetric_difference(anotherSet)
ترجع set جديد يحتوي على العناصر الغير موجودة في كل من الـset الذي قام باستدعائها و في الـset الذي نمرره لها مكان الباراميتر anotherSet. شاهد المثال |
12 | symmetric_difference_update(anotherSet)
تقارن الـset الذي قام باستدعائها مع الـset الذي نمرره لها مكان الباراميتر anotherSet. بعدها تضع في الـset الذي قام باستدعائها العناصر المشتركة بينهما فقط و تمسح أي عناصر آخرى كانت موجودة فيه. شاهد المثال |
13 | union(sets*)
ترجع set جديد يحتوي على العناصر الموجودة في الـset الذي قام باستدعائها و العناصر الموجودة في كل set نمرره لها مكان الباراميتر sets*. شاهد المثال |
14 | update(sets*)
تقارن عناصر الـset الذي قام باستدعائها مع العناصر الموجودة في كل set نمرره لها مكان الباراميتر sets*. بعدها تضع في الـset الذي قام باستدعائها العناصر المشتركة و الغير مشتركة بينهم. شاهد المثال |
15 | isdisjoint(anotherSet)
تقارن عناصر الـset الذي قام باستدعائها مع عناصر الـset الذي نمرره لها مكان الباراميتر anotherSet. ترجع True إذا كانا لا يحتوان على عناصر قيمها متساوية. و ترجع False إن لم يكونا كذلك. شاهد المثال |
16 | issuperset(anotherSet)
تقارن عناصر الـset الذي قام باستدعائها مع عناصر الـset الذي نمرره لها مكان الباراميتر anotherSet. ترجع True إذا كانت جميع عناصر الـset الذي نمرره لها مكان الباراميتر anotherSet موجودة في الـset الذي قام باستدعائها. غير ذلك ترجع False. شاهد المثال |
17 | issubset(anotherSet)
تقارن عناصر الـset الذي قام باستدعائها مع عناصر الـset الذي نمرره لها مكان الباراميتر anotherSet. ترجع True إذا كانت جميع عناصر الـset الذي قام باستدعائها موجودة في الـset الذي نمرره لها مكان الباراميتر anotherSet. غير ذلك ترجع False. شاهد المثال |
دوال جاهزة في بايثون للتعامل مع الـ set
إسم الدالة مع تعريفها | |
---|---|
1 | len(set)
ترجع عدد صحيح يمثل عدد عناصر الـset الذي نمرره لها عند إستدعائها. شاهد المثال |
2 | min(set)
ترجع أصغر قيمة موجودة في الـset الذي نمرره لها عند إستدعائها. شاهد المثال |
3 | max(set)
ترجع أكبر قيمة في الـset الذي نمرره لها عند إستدعائها. شاهد المثال |
4 | set(sequence)
ترجع نسخة من أي كائن يحتوي مجموعة عناصر نمرره لها عند إستدعائها ككائن من الكلاس الـset. شاهد المثال |