📚 **مراجعة: الفرق بين المعاجم (Dictionaries) والقوائم (Lists) والمجموعات (Sets) - "متى أستخدم ماذا؟"**

مراجعة توضح الفرق بين المعاجم (Dictionaries) و القوائم (Lists) أو المجموعات (Sets) في بايثون، مع شرح مفصل عن فائدة استخدام كل منها، ومتى يكون من الأفضل استخدام أحدهما بدلاً من الآخر


:books: مراجعة اليوم: الفرق بين المعاجم والقوائم والمجموعات - “متى أستخدم ماذا؟” :mag:

العربية :saudi_arabia::

في عالم البرمجة، لديك عدة خيارات لتنظيم البيانات: المعاجم (Dictionaries)، القوائم (Lists)، و المجموعات (Sets). ولكن كيف تقرر أيهما تستخدم؟ لنتعرف على الفرق بينها وفائدة كل منها.


1. القوائم (Lists) - “الخط المستقيم” :clipboard:

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

  • الترتيب: القوائم تحافظ على ترتيب العناصر حسب إدخالها.
  • قابلة للتكرار: يمكنك الحصول على أي عنصر بناءً على موقعه (index).
  • قابلة للتعديل: يمكن تغيير العناصر بعد إنشائها.

مثال:

# إنشاء قائمة
الأرقام = [1, 2, 3, 4, 5]
الأرقام.append(6)  # إضافة عنصر
print(الأرقام)  # النتيجة: [1, 2, 3, 4, 5, 6]

متى تستخدم القوائم؟

  • عندما تحتاج إلى تخزين بيانات مرتبة وقابلة للتعديل.
  • عندما تحتاج إلى الوصول إلى العناصر بناءً على الفهارس.

2. المعاجم (Dictionaries) - “صندوق المفاتيح” :key:

المعاجم هي مجموعة غير مرتبة من أزواج مفتاح/قيمة. كل مفتاح يجب أن يكون فريدًا، ويتم استخدامه للوصول إلى القيمة المقابلة له. القيم يمكن أن تكون من أي نوع بيانات، ويمكن تعديل المعجم بعد إنشائه.

  • الوصول السريع: يمكنك الوصول إلى القيم مباشرة باستخدام المفاتيح.
  • غير مرتبة: لا تحافظ المعاجم على ترتيب الإدخال.
  • قابلة للتعديل: يمكنك إضافة وحذف وتعديل أزواج المفاتيح والقيم.

مثال:

# إنشاء معجم
شخص = {"الاسم": "علي", "العمر": 25, "المدينة": "الرياض"}
شخص["الهواية"] = "كرة القدم"  # إضافة عنصر جديد
print(شخص)  # النتيجة: {'الاسم': 'علي', 'العمر': 25, 'المدينة': 'الرياض', 'الهواية': 'كرة القدم'}

متى تستخدم المعاجم؟

  • عندما تحتاج إلى الوصول السريع إلى البيانات باستخدام مفتاح فريد.
  • عندما تحتاج إلى تخزين بيانات لا تحتاج إلى ترتيب معين.

3. المجموعات (Sets) - “مجموعة فريدة من العناصر” :game_die:

المجموعات هي مجموعة غير مرتبة من العناصر الفريدة، أي أنه لا يمكن أن يحتوي الـ Set على قيم مكررة. المجموعات تُستخدم عادة للتحقق من وجود عنصر ما أو للتعامل مع مجموعات فريدة من البيانات.

  • الفردية: لا يمكن أن تحتوي المجموعات على عناصر مكررة.
  • غير مرتبة: لا يوجد ترتيب للعناصر في المجموعة.
  • سريعة في الفحص: المجموعات سريعة جدًا في عمليات الفحص والإضافة والحذف.

مثال:

# إنشاء مجموعة
الفواكه = {"تفاح", "موز", "برتقال"}
الفواكه.add("تفاح")  # إضافة عنصر، لكن لن يُضاف لأنه موجود مسبقًا
print(الفواكه)  # النتيجة: {'تفاح', 'موز', 'برتقال'}

متى تستخدم المجموعات؟

  • عندما تحتاج إلى مجموعة فريدة من العناصر بدون تكرار.
  • عندما تحتاج إلى عمليات فحص سريعة لوجود عنصر معين.
  • عند التعامل مع العمليات الرياضية على المجموعات مثل التقاطع (intersection) والاتحاد (union).

:brain: متى تستخدم أي منها؟

  • استخدم القوائم (Lists):

    • إذا كنت بحاجة إلى تخزين بيانات مرتبة.
    • إذا كنت تخطط للوصول إلى العناصر بناءً على مواقعها (indexes).
    • إذا كنت بحاجة إلى تعديل البيانات بشكل متكرر مثل الإضافة أو الحذف.
  • استخدم المعاجم (Dictionaries):

    • إذا كنت بحاجة إلى تخزين بيانات على شكل أزواج مفتاح/قيمة.
    • إذا كنت بحاجة إلى الوصول السريع إلى القيم بناءً على مفتاح فريد.
    • إذا كان لديك مجموعة من البيانات غير المرتبة ولكنك تحتاج إلى طريقة فعالة للوصول إليها.
  • استخدم المجموعات (Sets):

    • إذا كنت بحاجة إلى مجموعة من العناصر الفريدة.
    • إذا كنت بحاجة إلى القيام بعمليات رياضية على البيانات (مثل الاتحاد أو التقاطع).
    • إذا كنت تحتاج إلى التحقق من وجود عناصر معينة بسرعة.

الخلاصة:

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


English Version:

:books: Today’s Review: Difference Between Dictionaries, Lists, and Sets - “When to Use What?” :mag:

In the world of programming, you have several options to organize data: Dictionaries, Lists, and Sets. But how do you decide which one to use? Let’s explore the differences between them and the benefits of each.


1. Lists - “The Straight Line” :clipboard:

Lists are an ordered collection of items that can be of the same type or different types. Lists are mutable, meaning you can add, remove, or modify items within the list.

  • Ordered: Lists maintain the order of elements as inserted.
  • Indexable: You can access any element by its position (index).
  • Mutable: Elements can be changed after creation.

Example:

# Creating a list
numbers = [1, 2, 3, 4, 5]
numbers.append(6)  # Adding an item
print(numbers)  # Output: [1, 2, 3, 4, 5, 6]

When to use Lists?

  • When you need to store ordered, mutable data.
  • When you need to access elements based on their index.

2. Dictionaries - “The Key Box” :key:

Dictionaries are an unordered collection of key/value pairs. Each key must be unique and is used to access the corresponding value. The values can be of any data type, and the dictionary is mutable.

  • Fast access: You can access values directly using keys.
  • Unordered: Dictionaries do not maintain the order of insertion.
  • Mutable: You can add, remove, and modify key-value pairs.

Example:

# Creating a dictionary
person = {"name": "Ali", "age": 25, "city": "Riyadh"}
person["hobby"] = "Football"  # Adding a new item
print(person)  # Output: {'name': 'Ali', 'age': 25, 'city': 'Riyadh', 'hobby': 'Football'}

When to use Dictionaries?

  • When you need fast access to data using a unique key.
  • When you need to store data without worrying about order.

3. Sets - “A Unique Collection of Items” :game_die:

Sets are an unordered collection of unique items. A set cannot contain duplicate values and is often used for checking membership or handling unique collections of data.

  • Uniqueness: Sets cannot contain duplicate items.
  • Unordered: There is no order to the items in a set.
  • Fast for checking: Sets are very fast for checking, adding, and removing items.

Example:

# Creating a set
fruits = {"apple", "banana", "orange"}
fruits.add("apple")  # Adding an item, but it won't be added since it's already present
print(fruits)  # Output: {'apple', 'banana', 'orange'}

When to use Sets?

  • When you need a collection of unique items without duplicates.
  • When you need fast membership checks.
  • When performing mathematical set operations like intersection and union.

:brain: When to Use Each?

  • Use Lists:

    • When you need to store ordered data.
    • When you plan to access elements based on their position (indexes).
    • When you need frequent modification like adding or removing items.
  • Use Dictionaries:

    • When you need to store data in key/value pairs.
    • When you need fast access to values using unique keys.
    • When you have a collection of unordered data but need efficient access.
  • Use Sets:

    • When you need a collection

of unique items.

  • When you need to perform mathematical operations on the data (like union or intersection).
  • When you need fast checks for the presence of items.

Conclusion:

Each of the data structures—Lists, Dictionaries, and Sets—has its own strengths depending on the type of data you’re working with and the operations you need to perform. Lists are great for ordered data, dictionaries are useful for quick lookups by keys, and sets are perfect for ensuring uniqueness.