القواميس في Python (Dictionaries)

10:00 دقائق مجاني
في هذا الدرس ستتعلم القواميس في Python وكيف تخزن البيانات على شكل مفاتيح وقيم وتتعامل معها بسهولة

القائمة (List) ممتازة لتخزين عناصر مرتبة. لكن أحيانًا نحتاج تخزين بيانات “مترابطة” مثل: اسم الطالب + عمره + مدينته. هنا تأتي فائدة القواميس (Dictionaries).

ما هو القاموس؟

القاموس يخزن البيانات على شكل: مفتاح (Key)قيمة (Value)


student = {
    "name": "Ali",
    "age": 20,
    "city": "Riyadh"
}

كل مفتاح فريد، والقيم يمكن أن تكون نص أو رقم أو حتى قائمة.

الوصول إلى القيم


student = {"name": "Ali", "age": 20}

print(student["name"])
print(student["age"])

نستخدم اسم المفتاح داخل أقواس مربعة للوصول للقيمة.

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


student = {"name": "Ali", "age": 20}
student["age"] = 21

print(student)

يمكنك تغيير قيمة أي مفتاح بسهولة.

إضافة مفتاح جديد


student = {"name": "Ali"}
student["city"] = "Riyadh"

print(student)

مجرد كتابة مفتاح جديد تعني إضافته مباشرة.

حذف مفتاح من القاموس


student = {"name": "Ali", "age": 20}
del student["age"]

print(student)

أمر del يحذف المفتاح وقيمته.

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

تقدر تمر على المفاتيح أو القيم أو الاثنين معًا.


student = {"name": "Ali", "age": 20, "city": "Riyadh"}

for key in student:
    print(key, "=>", student[key])

هذه طريقة سهلة لعرض كل البيانات داخل القاموس.

الدالة get لتجنب الأخطاء

إذا حاولت الوصول لمفتاح غير موجود باستخدام [] سيظهر خطأ. البديل الأفضل هو get.


student = {"name": "Ali"}

print(student.get("age"))
print(student.get("age", "غير موجود"))

تقدر تحدد قيمة افتراضية إذا المفتاح غير موجود.

أخطاء شائعة

  • نسيان الفواصل بين العناصر
  • استخدام مفتاح غير موجود باستخدام []
  • نسيان علامات الاقتباس حول المفاتيح النصية

تمرين للتطبيق

أنشئ قاموس يحتوي:

  • اسمك
  • عمرك
  • مدينتك

ثم اطبع القاموس كاملًا، واطبع كل قيمة بشكل منفصل.

قائمة أم قاموس؟ متى تختار كلًّا منهما

السؤال الذي يحيّر المبتدئ: لماذا نحتاج القاموس وعندنا القائمة؟ الفرق في طريقة الوصول للبيانات. في القائمة تصل للعنصر برقم موضعه، وهذا يصلح للأشياء المرتّبة. أما القاموس فتصل للقيمة بـاسمها (المفتاح)، وهذا يصلح للبيانات المترابطة.

📋 القائمة

مناسبة لتسلسل من نوع واحد: أسماء الطلاب، درجات، أرقام. السؤال: «ما العنصر رقم 3؟»

🗂️ القاموس

مناسب لوصف شيء واحد بخصائصه: اسم الطالب وعمره ومدينته. السؤال: «ما قيمة العمر؟»

نصيحة احترافية: استخدم get لتجنّب الانهيار

حين تطلب مفتاحًا غير موجود بالأقواس المربعة، يتوقّف برنامجك بخطأ فوري. في برنامج حقيقي يتعامل مع إدخال المستخدم، هذا انهيار غير مقبول.

الحل الأنيق أن تستخدم get التي تُرجع قيمة افتراضية بدل الخطأ إن لم يوجد المفتاح. هكذا يبقى برنامجك صامدًا مهما طلب المستخدم. القاعدة: استخدم الأقواس المربعة حين تكون متأكدًا أن المفتاح موجود، و get حين تحتمل غيابه.

من خبرتي: أين تلتقي بالقواميس فعليًا

قد يبدو القاموس مفهومًا أكاديميًا، لكنه في الواقع أحد أكثر ما ستتعامل معه كمبرمج. بصفتي مطوّرًا، أؤكّد أن البيانات القادمة من الإنترنت ومن واجهات الـAPI تأتي غالبًا على هيئة قواميس بالضبط: مفاتيح وقيم.

حين تطلب بيانات الطقس مثلًا، يصلك قاموس فيه «درجة الحرارة» و«المدينة» و«الحالة». لذلك إتقان القاموس الآن استثمار مباشر فيما ستفعله لاحقًا. نصيحتي العملية التي أطبّقها: استخدم دائمًا الدالة get بدل الأقواس المربعة عند التعامل مع بيانات خارجية لا تضمن وجود مفاتيحها — هذا وحده يمنع انهيار برنامجك حين ينقص مفتاح، وهو خطأ رأيته يكسر برامج حقيقية في الإنتاج بسبب حقل واحد مفقود.

ماذا بعد هذا الدرس؟

الدرس القادم: الدوال (Functions)

سنتعلم كيف نجمع كودنا في أجزاء قابلة لإعادة الاستخدام.