المجموعات والتوبل في Python: لماذا تحتاجها؟

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

المجموعات والتوبل في Python: دليل شامل للمطورين

تقدم Python للمطورين أدوات قوية وسهلة للتعامل مع البيانات. من بين هذه الأدوات، تحتل المجموعات (set) والتوبل (tuple) مكانة خاصة. غالبًا ما يثير هذان النوعان من هياكل البيانات تساؤلات لدى المبرمجين: متى نستخدمها؟ وما هي مزاياها مقارنة بالقوائم أو القواميس؟

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

المجموعات (set) في Python

ما هي المجموعات؟

المجموعة في Python هي مجموعة غير مرتبة من العناصر الفريدة. لا تتكرر العناصر أبدًا داخل المجموعة. ولا يضمن النظام ترتيبًا معينًا لتخزينها.

الخصائص الرئيسية للمجموعات في Python:

  • عدم وجود عناصر مكررة
  • هيكل غير مرتب، لا يمكن الوصول إلى العناصر باستخدام الفهرس
  • دعم العمليات الرياضية على المجموعات
  • بحث سريع عن العناصر بفضل استخدام جداول التجزئة (hash tables)

إنشاء المجموعات

يمكن إنشاء مجموعة في Python بعدة طرق:

# إنشاء مجموعة تحتوي على عناصر
my_set = {1, 2, 3, 4}

# إنشاء مجموعة فارغة
empty_set = set()

# تحويل قائمة إلى مجموعة
numbers_list = [1, 2, 3, 4, 5]
numbers_set = set(numbers_list)

من المهم تذكر أنه لا يمكن استخدام الأقواس المعقوفة {} لإنشاء مجموعة فارغة، لأن ذلك سينشئ قاموسًا فارغًا وليس مجموعة.

الاستخدامات العملية للمجموعات

إزالة العناصر المكررة

تزيل المجموعات العناصر المكررة من المجموعات الأخرى بكفاءة:

numbers = [1, 2, 2, 3, 4, 4, 5]
unique_numbers = set(numbers)
print(unique_numbers)  # {1, 2, 3, 4, 5}

البحث السريع عن العناصر

التحقق من وجود عنصر في مجموعة يتم في وقت ثابت:

large_set = set(range(1000000))
print(999999 in large_set)  # True - يتم التنفيذ فورًا

العمليات الرياضية على المجموعات

تدعم Python العمليات القياسية لنظرية المجموعات:

set_a = {1, 2, 3, 4}
set_b = {3, 4, 5, 6}

# اتحاد المجموعتين
union_result = set_a | set_b  # {1, 2, 3, 4, 5, 6}

# تقاطع المجموعتين
intersection_result = set_a & set_b  # {3, 4}

# الفرق بين المجموعتين
difference_result = set_a - set_b  # {1, 2}

# الفرق المتماثل
symmetric_diff = set_a ^ set_b  # {1, 2, 5, 6}

طرق التعامل مع المجموعات

توفر المجموعات مجموعة غنية من الطرق للتعامل مع البيانات:

  • add() - إضافة عنصر واحد
  • update() - إضافة عدة عناصر
  • remove() - حذف عنصر مع ظهور خطأ إذا لم يكن موجودًا
  • discard() - حذف عنصر بأمان (بدون خطأ)
  • clear() - مسح المجموعة بالكامل
  • copy() - إنشاء نسخة من المجموعة

الأخطاء الشائعة مع المجموعات

محاولة الوصول باستخدام الفهرس

المجموعات لا تدعم الوصول إلى العناصر باستخدام الفهرس:

my_set = {1, 2, 3}
# my_set[0]  # TypeError: 'set' object is not subscriptable

استخدام الكائنات القابلة للتغيير

لا يمكن إضافة كائنات قابلة للتغيير مثل القوائم إلى المجموعة:

# invalid_set = {[1, 2], [3, 4]}  # TypeError: unhashable type: 'list'

التوبل (tuple) في Python

الخصائص الأساسية للتوبل

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

السمات الرئيسية للتوبل:

  • الترتيب

المدونات

توصيات الكتب