شرح Dictionaries في بايثون: دليلك الشامل لتعلم القواميس واستخدامها باحترافية

دليل شامل حول شرح Dictionaries في بايثون (القواميس)
تُعد البرمجة بلغة بايثون تجربة ممتعة بفضل مرونتها وتعدد الأدوات التي توفرها للمطورين. ومن بين أهم هياكل البيانات التي يجب على كل مبرمج إتقانها هي “القواميس” أو ما يُعرف بـ Dictionaries. إذا كنت تبحث عن شرح Dictionaries في بايثون بشكل مبسط وعميق في آن واحد، فهذا المقال هو دليلك الشامل لفهم كيفية عملها واستخدامها بكفاءة.
ما هو القاموس (Dictionary) في بايثون؟
القاموس في بايثون هو هيكل بيانات يُستخدم لتخزين البيانات على شكل أزواج من “المفاتيح” و”القيم” (Key-Value Pairs). على عكس القوائم (Lists) التي تعتمد على الفهرسة الرقمية (Indexing)، يعتمد القاموس على المفاتيح للوصول إلى البيانات، مما يجعله أداة قوية جداً وسريعة عند التعامل مع كميات كبيرة من المعلومات المرتبطة ببعضها.
تخيل القاموس الحقيقي؛ للبحث عن معنى كلمة، تذهب مباشرة إلى الكلمة (المفتاح) لتجد تعريفها (القيمة). هذا تماماً ما يحدث في بايثون.
الخصائص الأساسية للقواميس:
- مرتبة (Ordered): بدءاً من إصدار بايثون 3.7، أصبحت القواميس تحافظ على ترتيب العناصر حسب وقت إضافتها.
- قابلة للتغيير (Changeable): يمكنك إضافة، حذف، أو تعديل العناصر بعد إنشاء القاموس.
- فريدة المفاتيح (Unique Keys): لا يمكن أن يحتوي القاموس على مفتاحين متطابقين؛ فكل مفتاح يجب أن يكون فريداً.
كيفية إنشاء القاموس في بايثون
يتم إنشاء القاموس باستخدام الأقواس المعقوفة {}، حيث يتم الفصل بين المفتاح والقيمة بنقطتين رأسيين :، وبين كل زوج وآخر بفاصلة ,.
# مثال لإنشاء قاموس بسيط
student = {
"name": "أحمد",
"age": 22,
"major": "علوم الحاسب"
}
في هذا المثال، “name” هو المفتاح، و “أحمد” هو القيمة المرتبطة به.
الوصول إلى العناصر وتعديلها
عند حديثنا عن شرح Dictionaries في بايثون، لا بد من توضيح كيفية استرجاع البيانات وتحديثها.
1. الوصول إلى القيم
يمكنك الوصول إلى قيمة معينة باستخدام المفتاح الخاص بها داخل أقواس مربعة:
print(student["name"]) # المخرجات: أحمد
أو استخدام دالة get() التي تُعتبر أكثر أماناً لأنها لا تؤدي لتوقف البرنامج (Error) في حال عدم وجود المفتاح:
print(student.get("age")) # المخرجات: 22
2. تعديل وإضافة العناصر
تعديل القاموس أمر بسيط للغاية؛ فإذا كان المفتاح موجوداً سيتم تحديث قيمته، وإذا لم يكن موجوداً سيتم إنشاؤه تلقائياً:
# تعديل قيمة موجودة
student["age"] = 23إضافة عنصر جديد
student["grade"] = "A"
التعامل مع العناصر (الحذف والتكرار)
توفر بايثون طرقاً متعددة لإدارة محتويات القاموس، مما يمنح المطور تحكماً كاملاً في البيانات.
حذف العناصر
هناك عدة دوال لحذف البيانات من القاموس:
pop(key): يحذف العنصر المرتبط بمفتاح معين ويعيد قيمته.del dict_name[key]: يحذف المفتاح والقيمة المرتبطة به.clear(): يقوم بإفراغ القاموس تماماً من محتوياته.
التكرار (Looping) عبر القاموس
يمكنك المرور على القاموس بعدة طرق باستخدام حلقة for:
- المرور على المفاتيح:
for x in student: - المرور على القيم:
for x in student.values(): - المرور على المفاتيح والقيم معاً:
for key, value in student.items(): print(key, value)
أهم ميزات القواميس في البرمجة الواقعية
يعتمد المطورون على القواميس في حالات كثيرة جداً، منها:
- تمثيل قواعد البيانات: حيث يمثل كل قاموس سجلاً (Record) لمستخدم أو منتج.
- التعامل مع ملفات JSON: لغة بايثون تتعامل مع بيانات JSON (المنتشرة في تطوير الويب) كقواميس برمجية.
- تخزين الإعدادات: تُستخدم القواميس لتخزين إعدادات التطبيقات لسهولة الوصول إليها عبر مفاتيح نصية واضحة.
نصائح احترافية عند استخدام القواميس
خلال رحلتك في تعلم شرح Dictionaries في بايثون، تذكر هذه القواعد الذهبية:
- استخدم مفاتيح ثابتة: يُفضل دائماً أن تكون المفاتيح من أنواع البيانات غير القابلة للتغيير (Immutable) مثل النصوص (Strings) أو الأرقام.
- القواميس المتداخلة (Nested Dictionaries): يمكنك وضع قاموس داخل قاموس آخر لتمثيل بيانات معقدة.
- دالة
keys()وvalues(): استخدمهما للحصول على قائمة سريعة بجميع المفاتيح أو القيم دون الحاجة لعمل حلقة تكرار معقدة.