القائمة الرئيسية

الصفحات

الاخبار[LastPost]

القوائم والقواميس في Python: تخزين البيانات وتنظيمها

غلاف الدرس الثامن من سلسلة تعلم البرمجة

📚 سلسلة تعلّم البرمجة للمبتدئين
— الدرس 8 من 10
إذا فاتك الدرس السابق: الدوال في Python: نظّم برامجك وأعد استخدام الكود

المتغير الذي تعلمناه في الدرس الرابع يحمل قيمة واحدة فقط. لكن ماذا لو أردنا تخزين أسماء ثلاثين طالبًا؟ هل ننشئ ثلاثين متغيرًا؟ بالطبع لا! في هذا الدرس نتعرّف إلى القوائم والقواميس، وهما أهم طريقتين لتخزين مجموعات البيانات في Python.

القوائم (Lists)

القائمة مجموعة مرتّبة من القيم داخل قوسين مربعين [ ]، تفصل بينها فواصل.

students = ["أحمد", "سارة", "يوسف", "ليلى"]
grades = [88, 95, 72, 60]
print(students)

الوصول إلى العناصر

لكل عنصر رقم يسمّى الفهرس (index)، ويبدأ من صفر:

print(students[0])    # أحمد  (العنصر الأول)
print(students[2])    # يوسف
print(students[-1])   # ليلى  (العنصر الأخير)
print(len(students))  # 4     (عدد العناصر)

تعديل القائمة

العمليةالكود
إضافة عنصر في النهايةstudents.append("مريم")
إضافة في موضع معيّنstudents.insert(1, "علي")
حذف عنصر بقيمتهstudents.remove("يوسف")
تغيير عنصرstudents[0] = "أحمد علي"
ترتيب القائمةgrades.sort()
هل العنصر موجود؟"سارة" in students

المرور على القائمة بحلقة for

هنا يظهر جمال الربط بين ما تعلمناه في الدرس السادس وهذا الدرس:

grades = [88, 95, 72, 60, 91]

total = 0
for g in grades:
    total += g

print(f"المجموع: {total}")
print(f"المتوسط: {total / len(grades)}")
print(f"أعلى درجة: {max(grades)}")
print(f"أدنى درجة: {min(grades)}")

القواميس (Dictionaries)

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

student = {
    "name": "سارة",
    "grade": 95,
    "class": "التاسع"
}

print(student["name"])    # سارة
print(student["grade"])   # 95

تعديل القاموس

student["grade"] = 97          # تعديل قيمة
student["city"] = "الكويت"     # إضافة مفتاح جديد
del student["class"]           # حذف مفتاح
print(student.get("phone", "غير مسجّل"))  # قراءة آمنة لمفتاح غير موجود

المرور على القاموس

grades = {"أحمد": 88, "سارة": 95, "يوسف": 72}

for name, grade in grades.items():
    print(f"{name}: {grade}")

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

القائمةالقاموس
مجموعة عناصر متشابهة مرتّبةمعلومات مختلفة عن شيء واحد
نصل للعنصر برقمهنصل للقيمة باسم المفتاح
مثال: أسماء طلاب الفصلمثال: بيانات طالب واحد

مشروع صغير: دفتر درجات الفصل

لنجمع كل ما تعلمناه: المتغيرات، والشروط، والحلقات، والدوال، والقوائم، والقواميس.

def get_rating(grade):
    if grade >= 90:
        return "ممتاز"
    elif grade >= 65:
        return "جيد"
    elif grade >= 50:
        return "مقبول"
    return "راسب"

classroom = {}

count = int(input("كم عدد الطلاب؟ "))
for i in range(count):
    name = input("اسم الطالب: ")
    grade = int(input(f"درجة {name}: "))
    classroom[name] = grade

print("\n--- نتائج الفصل ---")
for name, grade in classroom.items():
    print(f"{name}: {grade} ({get_rating(grade)})")

best = max(classroom, key=classroom.get)
print(f"\nالأول على الفصل: {best} 🏆")

الرمز \n يضيف سطرًا فارغًا، وmax(classroom, key=classroom.get) يُرجع اسم صاحب أعلى درجة.

تمرين لك

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

الخلاصة

بإتقان القوائم والقواميس تكون قد أنهيت أساسيات البرمجة بلغة Python. وفي الدرس القادم ننتقل إلى عالم جديد وممتع: بناء صفحة ويب حقيقية باستخدام HTML وCSS.

هل جرّبت مشروع دفتر الدرجات؟ ما الميزة التي تحب إضافتها إليه؟

→ الدرس السابق: الدوال في Python: نظّم برامجك وأعد استخدام الكود
الدرس التالي: أساسيات HTML وCSS: ابنِ أول صفحة ويب بنفسك ←

📚 فهرس السلسلة كاملة:

  1. ما هي البرمجة؟ ولماذا تتعلمها الآن؟
  2. كيف تختار أول لغة برمجة؟ مقارنة بين Python وJavaScript وغيرهما
  3. تجهيز بيئة البرمجة: من المتصفح إلى Python وVS Code
  4. المتغيرات وأنواع البيانات في Python: أول برامجك الحقيقية
  5. الجمل الشرطية في Python: اجعل برنامجك يتخذ القرارات
  6. الحلقات التكرارية في Python: for وwhile بأمثلة عملية
  7. الدوال في Python: نظّم برامجك وأعد استخدام الكود
  8. القوائم والقواميس في Python: تخزين البيانات وتنظيمها (أنت هنا)
  9. أساسيات HTML وCSS: ابنِ أول صفحة ويب بنفسك
  10. مقدمة في JavaScript ومشروع ختامي: ماذا بعد تعلم الأساسيات؟

تعليقات