؛

التنقل في المنتدى
تحتاج لتسجيل الدخول لإنشاء مشاركات أو مواضيع.

بايثون3 مِن مدارس w3-17Python Sets

تنويه:
لِأن التاب لا تظهر على الصفحة, و هي شيء مهم جدا في الإزاحة في كود بايثون
لذلك فإننا سنستبدل التاب بالكلمة 'tab' على هذه الصفحة
و مِن الأفضل إذا شئت أن تنسخ أي كود, أن تأخذه مِن الملف النصي, أو الملفات المُرفقة.
المجموعات في بايثون(Python Sets)

المجموعة(Set)
المجموعة هي مجموعة غير مرَتبة وغير مفهرسة.
في لغة بايثون ، تتم كتابة المجموعات بأقواس متعرِّجَة, {}.
مثال
دعنا نقوم بإنشاء مجموعة:
thisset = {"apple", "banana", "cherry"}
print(thisset)

النتيجة:
{'cherry', 'apple', 'banana'}
جربها بنفسك مِن ملف set.py
ملاحظة: المجموعات غير مرَتبة ، لذا لا يمكنك التأكد من الترتيب الذي ستظهر به العناصر.

الوصول إلى العناصر
لا يمكنك الوصول إلى العناصر في مجموعة بالإشارة إلى فهرس أو مفتاح.
ولكن يمكنك إجراء حلقة عبر عناصر المجموعة باستخدام الحلقة for ، أو السؤال عما إذا كانت هناك قيمة معينة موجودة في المجموعة ، باستخدام الكلمة الأساسية in.
مثال
عمل حلقة عبر مجموعة وطباعة القيم:
thisset = {"apple", "banana", "cherry"}

for x in thisset:
tab print(x)

النتيجة:
apple
cherry
banana
جربها بنفسك مِن ملف set_loop.py

مثال
تحقق من وجود "banana" في المجموعة:
thisset = {"apple", "banana", "cherry"}

print("banana"in thisset)

النتيجة:
True
جربها بنفسك مِن ملف set_in.py

تغيير العناصر في المجموعة
بمجرد إنشاء مجموعة ، لا يمكنك تغيير عناصرها ، ولكن يمكنك إضافة عناصر جديدة.

إضافة عناصر إلى المجموعة
لإضافة عنصر واحد إلى مجموعة استخدم الوظيفة add() .
لإضافة أكثر من عنصر إلى مجموعة استخدم الوظيفة update() .
مثال
إضافة عنصر إلى مجموعة باستخدام الوظيفة add() :
thisset = {"apple", "banana", "cherry"}

thisset.add("orange")

print(thisset)

النتيجة:
{'cherry', 'orange', 'apple', 'banana'}
جربها بنفسك مِن ملف set_add.py

مثال
إضافة عدة عناصر إلى مجموعة باستخدام الوظيفة update() :
thisset = {"apple", "banana", "cherry"}

thisset.update(["orange", "mango", "grapes"])

print(thisset)

النتيجة:
{'grapes', 'banana', 'orange', 'apple', 'cherry', 'mango'}
جربها بنفسك مِن ملف set_update.py

معرفةْ طول المجموعة
لتحديد عدد العناصر الموجودة في المجموعة ، استخدم الدالة len().
مثال
معرفةْ عدد العناصر في مجموعة:
thisset = {"apple", "banana", "cherry"}

print(len(thisset))

ستكون النتيجة:
3
جربها بنفسك مِن ملف set_length.py

إزالةْ عنصر مِن المجموعة
لإزالةْ عنصر مِن مجموعة ، استخدم الوظيفة remove()أو discard().
مثال
إزالةْ "banana" باستخدام الوظيفة remove()
thisset = {"apple", "banana", "cherry"}

thisset.remove("banana")

print(thisset)

النتيجة:
{'cherry', 'apple'}
جربها بنفسك مِن ملف set_remove.py
ملاحظة: إذا لم يكن العنصر الذي تريد إزالته موجوداً، فإن remove() سَتُعطي رسالةْ خطأ.

مثال
إزالة "banana" باستخدام الوظيفة discard()
thisset = {"apple", "banana", "cherry"}

thisset.discard("banana")

print(thisset)

النتيجة:
{'apple', 'cherry'}
جربها بنفسك مِن ملف set_discard.py
ملاحظة: إذا كان العنصر المراد إزالته غير موجود ، فإن الوظيفة discard () لن تؤدي إلى حدوث خطأ.
يمكنك أيضًا استخدام الوظيفة pop() ، لإزالةْ عنصر ، لكن هذه الطريقة ستزيل العنصر الأخير . تذَكر أن المجموعات غير مرَتبة ، لذلك لن تعرف العنصر الذي ستتم إزالته.
قيمة الإرجاع للوظيفة pop() هي العنصر الذي تمت إزالته.
مثال
إزالة العنصر الأخير باستخدام الوظيفة pop() :
thisset = {"apple", "banana", "cherry"}

x = thisset.pop()

print(x)

print(thisset)

النتيجة:
cherry
{'banana', 'apple'}
جربها بنفسك مِن ملف set_pop.py
ملاحظة: المجموعات غير مرَتبة ، لذلك عند استخدام الوظيفة pop() ، فإنك لن تعرف العنصر الذي سوف تتم إزالته.

مثال
تعمل الوظيفة clear() على إفراغ مجموعة:
thisset = {"apple", "banana", "cherry"}

thisset.clear()

print(thisset)

ستكون النتيجة:
set()
جربها بنفسك مِن ملف set_clear.py

مثال
ستقوم الكلمة الرئيسية del بحذف المجموعة تماما:
thisset = {"apple", "banana", "cherry"}

del thisset

print(thisset)

النتيجة:
Traceback (most recent call last):
File "set_del.py", line 5, in <module>
print(thisset) #this will raise an error because the set no longer exists
NameError: name 'thisset' is not defined
جربها بنفسك مِن ملف set_del.py

ضم أو دمج مجموعتين
هناك عدة طرق لِضم أو دمج مجموعتين أو أكثر في بايثون.
يمكنك استخدام الوظيفة union() التي تُرجع مجموعة جديدة تحتوي على جميع العناصر من كلتا المجموعتين ، أو الوظيفة update() التي تُدرج كل العناصر من مجموعة في أخرى:
مثال
تقوم الوظيفة union() بإرجاع مجموعة جديدة مع كل العناصر من كلتا المجموعتين:
set1 = {"a", "b" , "c"}
set2 = {1, 2, 3}

set3 = set1.union(set2)
print(set3)

النتيجة:
{'c', 'b', 'a', 2, 1, 3}
جربها بنفسك مِن ملف set_union.py

مثال
تقوم الوظيفة update () بإدراج العناصر الموجودة في set2 في set1:
set1 = {"a", "b" , "c"}
set2 = {1, 2, 3}

set1.update(set2)
print(set1)

النتيجة:
{1, 'a', 'b', 2, 3, 'c'}
جربها بنفسك مِن ملف set_update2.py
ملاحظة: سيستبعد كل مِن union() و update () أي عناصر مكررة.

هناك طرق أخرى لِضم أو دمج مجموعتين وتحافظ فقط على التكرارات ، أو تستبعد التكرارات ،
تحقق من القائمة الكاملة للوظائف المحددة المتعلقة بالمجموعة في أسفل هذه الصفحة.

دالة المَنشأ set()
مِن الممكن أيضًا استخدام دالة المَنشأ set () لإنشاء مجموعة.
مثال
استخدام دالة البناء أو الإنشاء set () لإنشاء مجموعة:
thisset = set(("apple", "banana", "cherry")) # note the double round-brackets
print(thisset)

النتيجة:
{'cherry', 'apple', 'banana'}
جربها بنفسك مِن ملف set2.py

الوظائف المتعلقة بالمجموعة(set methods)
يحتوي Python على مجموعة من الوظائف المتضمَنة التي يمكنك استخدامها في المجموعات.

add()
تُضيف عنصرا إلى المجموعة
clear()
تزيل جميع العناصر من المجموعة
copy()
تقوم بإرجاع نسخة من المجموعة
difference()
تقوم بإرجاع مجموعة تحتوي على الفرق بين اثنين أو أكثر من المجموعات
difference_update()
تقوم بإزالةْ العناصر الموجودة في هذه المجموعة و الموجودة أيضا في مجموعة أخرى معينة
discard()
تقوم بإزالة العنصر المحدد
intersection()
تقوم بإرجاع مجموعة ، و هي تقاطع المجموعتين, أي العناصر المشتركة بينهما
intersection_update()
تقوم بإزالة العناصر الموجودة في هذه المجموعة غير الموجودة في مجموعة(أو مجموعات أخرى محددة)
isdisjoint()
إرجاع ما إذا كانت مجموعتان بينهما تقاطع أم لا, يعني عناصر مشتركة
issubset()
إرجاع ما إذا كانت مجموعة أخرى تحتوي هذه المجموعة أم لا
issuperset()
إرجاع ما إذا كانت هذه المجموعة تحتوي على مجموعة أخرى أم لا
pop()
تقوم بإزالة عنصر من المجموعة
remove()
تقوم بإزالة عنصرا محددا
symmetric_difference()
تقوم بإرجاع مجموعة مع الاختلافات المتماثلة بين مجموعتين. أي مجموعة تحتوي على العناصر غير المشتركة
symmetric_difference_update()
تقوم بإدراج الاختلافات المتماثلة بين هذه المجموعة و مجموعة أخرى
union()
تقوم بإرجاع مجموعة تحتوي على عناصر المجموعات الأخرى
update()
تقوم بتحديث مجموعة مع اتحاد هذه المجموعة وغيرها

اختبر نفسك مع التمارين
التمرين:
تحقق من وجود "apple" في المجموعة fruits.
fruits = {"apple", "banana", "cherry"}
if "apple" ... fruits:
tab print("Yes, apple is a fruit!")

الإجابة:
fruits = {"apple", "banana", "cherry"}
if "apple" in fruits:
tab print("Yes, apple is a fruit!")

الدرس مع الملفات المُرفقة:
https://www.dropbox.com/s/51yie1gdxz1957h/17Python%20Sets.zip?dl=1

Skip to content