set in python

python reference

نوع المصفوفة set in python تتميز كما ذكرنا في درس array collection أن عناصرها غير مرتبة و ليس لها أرقام index , غير قابلة لتغيير أو تعديل القيم الخاصة بها , لا يمكن تكرار نفس القيمة في نفس المصفوفة set, عند تنفيذ البرنامج يتم تغيير موضع العناصر داخل set.

إنشاء set

يمكن إنشاء set بين الأقواس المجعدة { } أو من خلال الدالة set

friends = {"ahmed","amr","mohamed","ramy","hazem"}
friends  = set(("ahmed","amr","mohamed","ramy","hazem"))

إستخدام set

لا يمكن الوصول إلى عناصر set من خلال أرقام index و لكن يمكن الوصول الى قيمها من خلال الدوران داخلها بـ for

friends = {"ahmed","amr","mohamed","ramy","hazem"}

for x in friends:
  print(x)

يمكن فحص إذا كانت set تحتوي على قيمة أم لا من خلال الكلمة in لتعود القيمة بـ True / False

friends = {"ahmed","amr","mohamed","ramy","hazem"}
print("mohamed" in friends)

إضافة عناصر إلى set

على الرغم من أن قيم set غير قابلة للتعديل إلا أن يمكن إضافة عنصر أو مجموعة من العناصر إلى set من خلال مجموعة من الدوال.

الدالة add تقوم بإضافة العناصر إلى set

friends = {"ahmed","amr","mohamed","ramy","hazem"}
friends.add("khaled")
print(friends)

الدالة update من خلالها يمكن إضافة مجموعة من العناصر من مصفوفة أخرى مهما كان نوعها, في المثال التالي سيتم إضافة friends2 set الى friends , تلاحظ أن amr في المصفوفتين إلا أن لم يتم تكرار amr و تم الإكتفاء بـ amr في المصفوفة الأولى

friends = {"ahmed","amr","mohamed","ramy","hazem"}
friends2 = {"samy","ayman","ashraf","amr"}

print("set friends before update")
print(friends)

friends.update(friends2)

print("set friends after update")
print(friends)

الدالة union تقوم بدمج مصفوفتين و لكن لا تؤثر على الدالة الأصلية حيث تقوم بالعودة بالنتيجة النهائية و يمكن تخزينها في set جديد

friends = {"ahmed","amr","mohamed","ramy","hazem"}
friends2 = {"samy","ayman","ashraf","amr"}
the_full_friends = friends.union(friends2)

print(the_full_friends)

الدالة intersection_update تقوم بتعديل المصفوفة الأصلية بالقيم المشتركة فقط بين المصفوفتين

friends = {"ahmed","amr","mohamed","ramy","hazem"}
friends2 = {"samy","ayman","hazem","ashraf","ramy"}

print("set friends before update")
print(friends)

friends.intersection_update(friends2)

print("set friends after update")
print(friends)

دالة intersection تقوم بنفس دور intersection_update و لكن الفرق أنها تعود بمصفوفة جديدة بالنتيجة

friends = {"ahmed","amr","mohamed","ramy","hazem"}
friends2 = {"samy","ayman","hazem","ashraf","ramy"}
the_new_set = friends.intersection(friends2)

print(the_new_set)

دالة symmetric_difference_update تقوم بتحديث المصفوفة الأصلية فقط بالعناصر الغير المشتركة و ستقوم بحذف العناصر المشتركة 

friends = {"ahmed","amr","mohamed","ramy","hazem"}
friends2 = {"samy","ayman","hazem","ashraf","ramy"}

print("set friends before update")
print(friends)

friends.symmetric_difference_update(friends2)

print("set friends after update")
print(friends)

بينما دالة symmetric_difference تقوم بنفس عملية symmetric_difference_update إلا أنها تعود كمصفوفة جديدة

friends = {"ahmed","amr","mohamed","ramy","hazem"}
friends2 = {"samy","ayman","hazem","ashraf","ramy"}
the_new_set = friends.symmetric_difference(friends2)

print(the_new_set)

حذف عناصر من set

دالة remove تقوم  بحذف عنصر من set من خلال القيمة, هذة الدالة تعود برسالة خطأ في حالة لو كانت القيمة غير موجودة

friends = {"ahmed","amr","mohamed","ramy","hazem"}
print("set friends before remove")
print(friends)

friends.remove("amr")
print("set friends after remove")
print(friends)

دالة discard تقوم  بحذف عنصر من set من خلال القيمة, هذة الدالة لا تعود برسالة خطأ في حالة لو كانت القيمة غير موجودة

friends = {"ahmed","amr","mohamed","ramy","hazem"}
print("set friends before discard")
print(friends)

friends.discard("amr")
print("set friends after discard")
print(friends)

دالة pop تقوم بحذف أخر عنصر من set , و لكن ضع في الأعتبار أن هذا العنصر سيتغير على حسب الترتيب العشوائي عند تنفيذ set

friends = {"ahmed","amr","mohamed","ramy","hazem"}
print("set friends before pop")
print(friends)

friends.pop()
print("set friends after pop")
print(friends)

دالة clear تقوم بحذف كل عناصر set

friends = {"ahmed","amr","mohamed","ramy","hazem"}
print("set friends before clear")
print(friends)

friends.clear()
print("set friends after clear")
print(friends)

أيضاً من خلال del يمكن حذف set بالكامل من الذاكرة

friends = {"ahmed","amr","mohamed","ramy","hazem"}
del friends
print(friends)

Leave a Reply