بايثون: القواميس (Dictionaries) في لغة بايثون
القاموس (Dictionary) في لغة بايثون هو أحد أنواع البيانات المدمجة (Built-in data types) الذي يسمح بتخزين البيانات على شكل أزواج (مفتاح: قيمة) أو (Key: Value). يعتبر القاموس من أكثر الهياكل البيانية فائدة في البرمجة.
أولاً: تعريف القاموس
القاموس هو مجموعة غير مرتّبة وقابلة للتعديل من أزواج المفتاح-قيمة. يتم إنشاء القاموس باستخدام الأقواس المعقوفة { } وتكون أزواج المفتاح-قيمة مفصولة بنقطتين (:) والأزواج مفصولة بفواصل (,).
الصيغة العامة:
my_dict = {مفتاح1: قيمة1, مفتاح2: قيمة2, …}
مثال:
student = {“name”: “Ahmed”, “age”: 16, “grade”: “1AS”}
ثانياً: خصائص القواميس
- المفاتيح (Keys): يجب أن تكون فريدة وغير قابلة للتغيير (يمكن استخدام الأعداد والنصوص)
- القيم (Values): يمكن أن تكون من أي نوع (أعداد، نصوص، قوائم، قواميس أخرى)
- القواميس قابلة للتعديل (يمكن إضافة أو تعديل أو حذف العناصر)
ثالثاً: أهم العمليات على القواميس
1. الوصول إلى العناصر:
student[“name”] → يظهر القيمة المرتبطة بالمفتاح “name”
student.get(“age”) → طريقة أخرى للوصول (تعيد None إذا كان المفتاح غير موجود)
2. إضافة وتعديل العناصر:
student[“city”] = “Algiers” → إضافة مفتاح جديد
student[“age”] = 17 → تعديل قيمة موجودة
3. حذف العناصر:
del student[“grade”] → حذف مفتاح grade
student.pop(“city”) → حذف وإرجاع القيمة المحذوفة
4. التكرار على القاموس:
for key, value in student.items(): print(key, value)
for key in student.keys(): print(key)
for value in student.values(): print(value)
مثال تطبيقي كامل:
# برنامج تخزين درجات الطلاب
grades = {“Ahmed”: 16, “Sara”: 18, “Mohamed”: 14}
print(“درجة أحمد:”, grades[“Ahmed”])
# إضافة طالب جديد
grades[“Lina”] = 15
# حساب المعدل
average = sum(grades.values()) / len(grades)
print(“معدل الفصل:”, average)
تمارين تطبيقية
التمرين 1:
أنشئ قاموساً يحتوي على معلومات 3 كتب (العنوان، المؤلف، السنة). أضف كتاباً رابعاً ثم اطبع جميع المعلومات.
التمرين 2:
اكتب برنامجاً يطلب من المستخدم إدخال اسم ودرجة 5 طلاب، يخزنهم في قاموس، ثم يطبع أسماء الطلاب الذين حصلوا على درجة أكبر من 15.
التمرين 3:
ماذا يطبع الكود التالي؟
d = {“a”: 1, “b”: 2, “c”: 3}
for k in d:
print(k, d[k])
التمرين 4:
الفرق بين القائمة (List) والقاموس (Dictionary) من حيث طريقة تخزين البيانات والوصول إليها.
للمزيد حول البرمجة بلغة بايثون، راجع درس أساسيات البرمجة بلغة بايثون وكذلك درس بايثون: القوائم والجمل التكرارية.
مدونة التربية و التعليم في الجزائر – دروس، فروض، نتائج امتحانات مدونة التربية والتعليم في الجزائر | تحضير الدروس، فروض واختبارات، نتائج البكالوريا وBEM، مسابقات التوظيف، والتوجيه المدرسي للطلاب وأولياء الأمور.