تعلم لغة البايثون – الدرس الثامن عشر المجموعات في بايثون 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 '}