fbpx

تعلم لغة البايثون – الدرس الثامن عشر المجموعات في بايثون Python Sets



المجموعات هي قوائم لا تحتوي على إدخالات مكررة. لنفترض أنك تريد جمع قائمة بالكلمات المستخدمة في فقرة:

print(set("my name is Ahmed and Ahmed is my name".split()))

سنحصل على النتيجة التالية عند التشغيل

{'is', 'my', 'and', 'name', 'Ahmed '}

سيؤدي ذلك إلى طباعة قائمة تحتوي على “my” و “name” و “is” و “Ahmed” وأخيرًا “و”. نظرًا لأن بقية الجملة تستخدم الكلمات الموجودة بالفعل في المجموعة ، فلا يتم إدراجها مرتين.

تعد المجموعات أداة قوية في Python نظرًا لأنها تتمتع بالقدرة على حساب الاختلافات والتقاطعات بين المجموعات الأخرى. على سبيل المثال ، لنفترض أن لديك قائمة بالمشاركين في الحدثين “أ” و “ب”

a = set(["Hicham", "Yacine", "Ahmed "])
print(a)
b = set(["Yacine", "Wassim"])
print(b)

سنحصل على النتيجة التالية عند التشغيل

{'Yacine', 'Ahmed ', 'Hicham'}
{'Yacine', 'Wassim'}

لمعرفة الأعضاء الذين حضروا كلا الحدثين ، يمكنك استخدام طريقة “التقاطع”:

a = set(["Hicham", "Yacine", "Ahmed "])
b = set(["Yacine", "Wassim"])

print(a.intersection(b))
print(b.intersection(a))

سنحصل على النتيجة التالية عند التشغيل

{'Yacine'}
{'Yacine'}

لمعرفة الأعضاء الذين حضروا حدثًا واحدًا فقط ، استخدم طريقة “symmetric_difference”:

a = set(["Hicham", "Yacine", "Ahmed "])
b = set(["Yacine", "Wassim"])

print(a.symmetric_difference(b))
print(b.symmetric_difference(a))

سنحصل على النتيجة التالية عند التشغيل

{'Hicham', 'Ahmed ', 'Wassim'}
{'Ahmed ', 'Wassim', 'Hicham'}

لمعرفة الأعضاء الذين حضروا حدثًا واحدًا فقط وليس الآخر ، استخدم طريقة “الاختلاف”:

a = set(["Hicham", "Yacine", "Ahmed "])
b = set(["Yacine", "Wassim"])

print(a.difference(b))
print(b.difference(a))

سنحصل على النتيجة التالية عند التشغيل

{'Hicham', 'Ahmed '}
{'Wassim'}

لتلقي قائمة بجميع المشاركين ، استخدم طريقة “الاتحاد”:

a = set(["Hicham", "Yacine", "Ahmed "])
b = set(["Yacine", "Wassim"])

print(a.union(b))

سنحصل على النتيجة التالية عند التشغيل

{'Yacine', 'Ahmed ', 'Wassim', 'Hicham'}

تمرين

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

a = ["Hicham", "Yacine", "Ahmed "]
b = ["Yacine", "Wassim"]

الحل

a = ["Hicham", "Yacine", "Ahmed "]
b = ["Yacine", "Wassim"]

A = set(a)
B = set(b)

print(A.difference(B))

سنحصل على النتيجة التالية عند التشغيل

<script.py> output:
    {'Hicham', 'Ahmed '}





Leave a Reply