Coding Interview Prep · درس

القواميس كجداول بحث

ربط المفاتيح بالقيم للوصول السريع

الدرس 2 من 413 خطوة

القواميس كجداول بحث درس مجاني في Coding Interview Prep على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Coding Interview Prep، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Coding Interview Prep 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 للقراءات الآمنة، وخزّن الفهارس لتحويل عمليات البحث البطيئة إلى إجابات فورية. 🚀

البدء مجانًا

تعلم Coding Interview Prep مع معلم ذكاء اصطناعي — مجانًا

اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.

الدورات
90
الدروس
360

الأسئلة الشائعة

هل درس «القواميس كجداول بحث» مجاني؟

نعم — نص درس «القواميس كجداول بحث» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Coding Interview Prep، انتقل إلى CoddyKit PRO. تتضمن دورة Coding Interview Prep 4 دروس في المجموع.

ماذا ستتعلم في «القواميس كجداول بحث»؟

ربط المفاتيح بالقيم للوصول السريع تتمرن على Coding Interview Prep مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Coding Interview Prep؟

لا تُشترط خبرة سابقة. Coding Interview Prep على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.

كم من الوقت يستغرق درس «القواميس كجداول بحث»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Coding Interview Prep هذا؟

نعم. كل درس في Coding Interview Prep يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. المجموعات للتحقق من العضوية وإزالة التكرار
  2. القواميس كجداول بحث
  3. ‏Counter وdefaultdict عمليًا
  4. التجميع والتصنيف باستخدام Map
← العودة إلى Coding Interview Prep