القواميس كجداول بحث
ربط المفاتيح بالقيم للوصول السريع
القواميس كجداول بحث درس مجاني في Competitive Programming Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Competitive Programming Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Competitive Programming Academy 4 دروس في المجموع.
فكرة القاموس
يربط القاموس المفاتيح بالقيم، ما يتيح لك جلب إجابة مخزنة بالاسم بدلًا من البحث المتسلسل. إنه جدول البحث الخاص بك في مسابقات البرمجة. 🔑
الوصول بزمن ثابت
مثل المجموعة، يُجري القاموس تجزئة للمفتاح، لذلك تكون القراءة والكتابة فيه تقريبًا بزمن O(1). ولهذا يحل محل عمليات البحث الخطي البطيئة.
إنشاء قاموس
اكتب أزواج المفتاح والقيمة داخل أقواس معقوفة، أو ابدأ بقاموس فارغ باستخدام زوج عادي من الأقواس المعقوفة. يشير كل مفتاح إلى قيمة واحدة بالضبط.
age = {'amy': 21, 'bob': 19}
empty = {}القراءة باستخدام المفتاح
اجلب قيمة باستخدام أقواس مربعة حول المفتاح. يعمل المفتاح مثل الفهرس، لكنه قد يكون سلسلة نصية أو رقمًا أو صفًا.
print(age['amy'])المفاتيح المفقودة تسبب خطأً
تؤدي قراءة مفتاح غير موجود باستخدام الأقواس إلى رفع KeyError. وفي المسابقة يتحول ذلك فورًا إلى حكم يفيد بحدوث خطأ أثناء التشغيل.
قراءة آمنة باستخدام get
استخدم get لإرجاع قيمة افتراضية بدلًا من التوقف عند غياب المفتاح. هذه هي الطريقة الآمنة لقراءة المفاتيح التي قد تكون مفقودة.
count = age.get('zoe', 0)الإدراج والتحديث
إسناد قيمة إلى مفتاح يؤدي إما إلى إضافته أو استبدال القيمة القديمة. وتتولى الصياغة نفسها عمليتي الإدراج والتحديث.
age['cara'] = 25
age['amy'] = 22تحقق قبل القراءة
تحقق من وجود المفتاح باستخدام in قبل الاعتماد عليه. يحميك ذلك من KeyError ويجعل منطقك واضحًا.
if 'bob' in age:
print(age['bob'])ربط القيم بمواضعها
تخزن حيلة شائعة فهرس كل قيمة، بحيث يمكنك لاحقًا معرفة موضعها في خطوة واحدة. وهذا مفيد جدًا في مسائل البحث عن الأزواج.
pos = {}
for i, v in enumerate(nums):
pos[v] = iالتكرار على الأزواج
كرّر على المفاتيح والقيم معًا باستخدام items. فهذا أوضح من البحث عن كل قيمة مرة أخرى داخل الحلقة.
for name, a in age.items():
print(name, a)يجب أن تكون المفاتيح قابلة للتجزئة
يجب أن تكون مفاتيح القاموس قابلة للتجزئة، لذا استخدم الأرقام أو السلاسل النصية أو الصفوف. لا يمكن أن تكون القائمة مفتاحًا، لكن يمكن أن يكون صف من الأعداد الصحيحة مفتاحًا.
seen = {(0, 0): 'start'}تحقق سريع
تريد قراءة مفتاح قد لا يكون موجودًا من دون التسبب في توقف البرنامج.
مراجعة
يربط القاموس المفاتيح بالقيم لإجراء عمليات بحث بزمن O(1). استخدم get للقراءات الآمنة، وخزّن الفهارس لتحويل عمليات البحث البطيئة إلى إجابات فورية. 🚀
تعلم Python مع معلم ذكاء اصطناعي — مجانًا
اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.
- الدورات
- 30
- الدروس
- 120
الأسئلة الشائعة
هل درس «القواميس كجداول بحث» مجاني؟
نعم — نص درس «القواميس كجداول بحث» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Competitive Programming Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Competitive Programming Academy 4 دروس في المجموع.
ماذا ستتعلم في «القواميس كجداول بحث»؟
ربط المفاتيح بالقيم للوصول السريع تتمرن على Competitive Programming Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Competitive Programming Academy؟
لا تُشترط خبرة سابقة. Competitive Programming Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «القواميس كجداول بحث»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Competitive Programming Academy هذا؟
نعم. كل درس في Competitive Programming Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- المجموعات للتحقق من العضوية وإزالة التكرار
- القواميس كجداول بحث
- Counter وdefaultdict عمليًا
- التجميع والتصنيف باستخدام Map