الدرس 7 من 10

المجموعات (Collections)

في الواقع بتتعامل مع مجموعات، مش قيمة واحدة.

قائمة مشتريات، دليل تليفونات، زوار موقع... بايثون عندها ٤ أنواع أساسية لتخزين المجموعات. قارن بينهم بسرعة هنا:

["milk", "eggs", "milk"]
مرتبةتتعدلتقبل تكرار
استخدمها إمتى: لما يكون عندك عناصر ترتيبها مهم وهتضيف وتشيل منها: عربية مشتريات، قائمة مهام، درجات طلاب.
🤖 لما توصل NumPy هتلاقي الـ array شبهها جداً بس أسرع بكتير.

List: قائمة مرتبة وتتعدل

lists.py
cart = ["milk", "bread", "eggs"]

cart.append("cheese")      # add to the end
cart.remove("bread")       # remove by value
cart[0] = "oat milk"       # change by index

print(cart)
print(len(cart), "items")
print("eggs" in cart)

Dictionary: مفتاح وقيمة

زي القاموس: تدور بالكلمة (المفتاح) تلاقي معناها (القيمة). ده أكتر نوع هتستخدمه في الـ AI، لأن البيانات اللي جاية من الـ APIs بتبقى بالشكل ده واسمها JSON.

dicts.py
order = {
    "id": 1024,
    "customer": "Sara",
    "items": ["pizza", "cola"],
    "paid": False,
}

print(order["customer"])        # access by key
order["paid"] = True            # update a value
order["driver"] = "Mahmoud"     # add a new key

for key, value in order.items():
    print(f"{key}: {value}")

Tuple و Set

tuple_set.py
# Tuple: like a list but CAN'T be changed
cairo_location = (30.0444, 31.2357)

# Set: no duplicates, no order
visitors = ["ali", "sara", "ali", "omar", "sara"]
unique_visitors = set(visitors)
print(len(unique_visitors), "unique visitors")
⚠ index مش موجود = خطألو طلبت index مش موجود في list هيطلع IndexError، ولو key مش موجود في dict هيطلع KeyError. استخدم order.get("key") عشان ترجعلك None بدل الخطأ.
الدرس اللي فات