Counter وdefaultdict عمليًا
إحصاء العناصر دون أخطاء المفاتيح المفقودة
Counter وdefaultdict عمليًا درس مجاني في Coding Interview Prep على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Coding Interview Prep، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Coding Interview Prep 4 دروس في المجموع.
أصبح العد سهلًا
يظهر عدّ مرات تكرار العناصر في كل مكان تقريبًا في المسابقات. توفر وحدة collections أداتين تجعلانه أمرًا سهلًا. 🧮
مشكلة المفتاح المفقود
ترفع القواميس العادية KeyError عند زيادة قيمة مفتاح غير موجود بعد. أما البنى الخاصة فتزيل عنك هذه المشكلة.
تعرّف إلى Counter
يعدّ Counter عناصر أي كائن قابل للتكرار في سطر واحد، ويخزن تكرار كل عنصر كقيمته. أما المفاتيح المفقودة فتُحسب ببساطة على أنها صفر.
from collections import Counter
freq = Counter(nums)قراءة عدد التكرارات
استخدم الفهرسة مع Counter كما تفعل مع القاموس، لكن المفتاح المفقود يعيد صفرًا بدلًا من التسبب في توقف البرنامج. وهذا يجعل عمليات البحث آمنة تمامًا.
print(freq[5])
print(freq[999])العناصر الأكثر شيوعًا
استدعِ most_common للحصول على العناصر مرتبة من الأعلى تكرارًا إلى الأدنى. مرّر رقمًا لتحديد عدد العناصر الأولى التي تريد استلامها.
top3 = freq.most_common(3)تُجري Counters العمليات الحسابية
يمكنك جمع عدّادين أو طرح أحدهما من الآخر لدمج عمليات العد. يدمج ذلك المفاتيح المتطابقة ويحافظ تلقائيًا على توافق المجاميع.
total = Counter(a) + Counter(b)تعرّف إلى defaultdict
يوفر defaultdict قيمة افتراضية جديدة لأي مفتاح جديد، فلا تحتاج أبدًا إلى التحقق من وجوده أولًا. وما عليك سوى تزويده بمصنع القيمة الافتراضية.
from collections import defaultdict
count = defaultdict(int)الزيادة دون شروط حماية
مع defaultdict(int) يبدأ المفتاح المفقود من الصفر، لذا يمكنك زيادته مباشرة. ولن تزدحم حلقتك بشرط in.
for v in nums:
count[v] += 1القوائم افتراضيًا
استخدم defaultdict(list) عندما يجمع كل مفتاح قيمًا متعددة. تؤدي الإضافة إلى مفتاح جديد تمامًا إلى بدء قائمة فارغة جديدة.
groups = defaultdict(list)
groups[key].append(item)Counter أم defaultdict
استخدم Counter عندما تريد عدّ العناصر فقط، واستخدم defaultdict عندما يحتاج كل مفتاح إلى قوائم أو مجموعات أو قيم افتراضية مخصصة. 🎯
الكلمات المتشابهة في سطر واحد
تكون كلمتان متشابهتين في الحروف بالضبط عندما يكون Counter الخاص بكل منهما مساويًا للآخر. وتتعامل المقارنة مع تكرار كل حرف دفعة واحدة.
is_anagram = Counter(s) == Counter(t)تحقق سريع
تريد عدّ مرات التكرار مع زيادة المفاتيح المفقودة بأمان.
مراجعة
يعدّ Counter العناصر فورًا ويرتبها، بينما يتجاوز defaultdict عمليات التحقق من المفاتيح المفقودة عند التعامل مع الأعداد أو القوائم أو المجموعات. وكلاهما يلغي الشيفرة المتكررة. 🚀
الأسئلة الشائعة
هل درس «Counter وdefaultdict عمليًا» مجاني؟
نعم — نص درس «Counter وdefaultdict عمليًا» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Coding Interview Prep، انتقل إلى CoddyKit PRO. تتضمن دورة Coding Interview Prep 4 دروس في المجموع.
ماذا ستتعلم في «Counter وdefaultdict عمليًا»؟
إحصاء العناصر دون أخطاء المفاتيح المفقودة تتمرن على Coding Interview Prep مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Coding Interview Prep؟
لا تُشترط خبرة سابقة. Coding Interview Prep على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «Counter وdefaultdict عمليًا»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Coding Interview Prep هذا؟
نعم. كل درس في Coding Interview Prep يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- المجموعات للتحقق من العضوية وإزالة التكرار
- القواميس كجداول بحث
- Counter وdefaultdict عمليًا
- التجميع والتصنيف باستخدام Map