بنى البيانات المتقدمة – المجموعات (Sets)

Amine
15/09/2024

المجموعات (Sets) هي مجموعة غير مرتبة من العناصر الفريدة. تكون المجموعات مفيدة عندما تحتاج إلى تخزين مجموعة من العناصر وتريد التأكد من عدم وجود تكرارات. كما تدعم المجموعات العمليات الرياضية مثل الاتحاد والتقاطع والفرق.

إنشاء واستخدام المجموعات

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

fruits = {"apple", "banana", "cherry"}
print(fruits)  # Output: {'cherry', 'banana', 'apple'}

numbers = set([1, 2, 3, 4, 4, 5])  # Duplicates are automatically removed
print(numbers)  # Output: {1, 2, 3, 4, 5}

المجموعات غير مرتبة، مما يعني أن العناصر ليس لها ترتيب معين، ولا يمكنك الوصول إليها باستخدام الفهرس.

إضافة وإزالة العناصر

يمكنك إضافة عنصر إلى مجموعة باستخدام الدالة add() وإزالة عنصر باستخدام الدالة remove():

fruits.add("orange")
print(fruits)  # Output: {'cherry', 'banana', 'apple', 'orange'}

fruits.remove("banana")
print(fruits)  # Output: {'cherry', 'apple', 'orange'}

العمليات على المجموعات

تدعم المجموعات العديد من العمليات الرياضية:

  • Union (|): يجمع العناصر من كلا المجموعتين، مع إزالة التكرارات.
  • Intersection (&): يُرجع فقط العناصر الموجودة في كلا المجموعتين.
  • Difference (-): يُرجع العناصر الموجودة في المجموعة الأولى ولكن ليست في الثانية.
  • Symmetric Difference (^): يُرجع العناصر الموجودة في أي من المجموعتين، ولكن ليست في كليهما.
set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}

print(set1 | set2)  # Union: {1, 2, 3, 4, 5, 6}
print(set1 & set2)  # Intersection: {3, 4}
print(set1 - set2)  # Difference: {1, 2}
print(set1 ^ set2)  # Symmetric Difference: {1, 2, 5, 6}

تمارين

التمرين 1

قم بإنشاء مجموعة من الكلمات الفريدة من قائمة قد تحتوي على تكرارات.

words = ["apple", "banana", "apple", "cherry", "banana", "date"]
unique_words = set(words)
print(unique_words)  # Output: {'banana', 'date', 'apple', 'cherry'}

التمرين 2

قم بإعطاء مجموعتين من الأرقام، واعثر على العناصر المشتركة بينهما باستخدام عملية التقاطع.

set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
common_elements = set1 & set2
print(common_elements)  # Output: {3, 4}

التمرين 3

اكتب برنامجًا يأخذ مجموعتين من الفواكه المفضلة لشخصين ويطبع الفواكه التي يحبها أحدهما فقط (الفرق المتماثل).

person1_fruits = {"apple", "banana", "cherry"}
person2_fruits = {"banana", "kiwi", "apple"}

unique_fruits = person1_fruits ^ person2_fruits
print(unique_fruits)  # Output: {'cherry', 'kiwi'}

عمل رائع! لقد تعلمت كيفية استخدام المجموعات لتخزين العناصر الفريدة وإجراء العمليات الشائعة مثل الاتحاد والتقاطع والفرق.

التعليقات

اترك تعليقاً