Counter
احسب عدد العناصر بسهولة
Counter درس مجاني في Python Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Python Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Python Academy 4 دروس في المجموع.
ما هو Counter؟
إن Counter فئة فرعية من القاموس، موجودة في الوحدة collections ومخصصة للعدّ. تمرّر إليها العناصر، فتُحصي عدد مرات ظهور كل عنصر.
استوردها باستخدام from collections import Counter.
from collections import Counter
c = Counter(['a', 'b', 'a', 'c', 'a'])
print(c)عدّ الأحرف
مرّر أي كائن قابل للتكرار، بما في ذلك السلسلة النصية، وسيعدّ Counter كل عنصر. وتُعدّ السلاسل النصية حرفاً حرفاً.
from collections import Counter
c = Counter('mississippi')
print(c)البحث عن عدد
يمكنك الوصول إلى العدد باستخدام مفتاح القاموس. يُرجع المفتاح المفقود 0 بدلاً من رفع KeyError، وهذا اختلاف مفيد عن القاموس العادي.
from collections import Counter
c = Counter('banana')
print(c['a'])
print(c['z'])العناصر الأكثر شيوعاً
تُرجع .most_common(n) أعلى n من العناصر على شكل أزواج (العنصر، العدد)، مرتبة من الأكثر تكراراً إلى الأقل.
from collections import Counter
words = ['red', 'blue', 'red', 'green', 'blue', 'red']
c = Counter(words)
print(c.most_common(2))جميع العناصر حسب التكرار
استدعِ .most_common() من دون وسيط للحصول على جميع العناصر مرتبة حسب تكرارها.
from collections import Counter
c = Counter('aabbbcccc')
print(c.most_common())تحديث الأعداد
تضيف الطريقة .update() أعداداً جديدة من كائن آخر قابل للتكرار، بدلاً من استبدال الأعداد كما يفعل القاموس العادي.
from collections import Counter
c = Counter(['a', 'b'])
c.update(['a', 'a', 'c'])
print(c)العدّ من قاموس
يمكنك أيضاً إنشاء Counter مباشرةً من تعيين يربط كل عنصر بعدده، أو باستخدام وسائط مسماة.
from collections import Counter
c = Counter(apples=3, pears=2)
print(c)
print(c['apples'])جمع كائنَي Counter
يجمع العامل + بين كائنَي Counter عبر جمع قيم المفاتيح المتطابقة. وتُحذف العناصر التي يكون إجماليها صفراً أو سالباً.
from collections import Counter
a = Counter(x=2, y=1)
b = Counter(x=1, z=4)
print(a + b)طرح الأعداد
يطرح العامل - الأعداد ويحتفظ بالنتائج الموجبة فقط. استخدم .subtract() إذا كنت تريد السماح بالنتائج السالبة.
from collections import Counter
a = Counter(x=5, y=2)
b = Counter(x=3, y=4)
print(a - b)إجمالي جميع الأعداد
اجمع كل عدد باستخدام sum(c.values()). يوضح لك ذلك عدد العناصر التي جرى عدّها إجمالاً.
from collections import Counter
c = Counter('mississippi')
print('Total letters:', sum(c.values()))سرد العناصر
تُرجع .elements() مكرراً يعيد كل عنصر بعدد مرات ظهوره. لفّه داخل list() لعرض جميع العناصر.
from collections import Counter
c = Counter(a=2, b=1, c=3)
print(sorted(c.elements()))تحقق سريع
إذا كان c = Counter('hello')، فماذا تُرجع c['x']؟
مراجعة: Counter
تعلّمت أن Counter:
- يعدّ العناصر من أي كائن قابل للتكرار، بما في ذلك السلاسل النصية.
- يُرجع
0للمفاتيح المفقودة بدلاً من رفع خطأ. - يوفر
.most_common(n)لترتيب العناصر حسب تكرارها. - يدعم
+و-و.update()و.elements()لإجراء عمليات العدّ.
from collections import Counter
votes = ['yes', 'no', 'yes', 'yes', 'no']
print(Counter(votes).most_common(1))الأسئلة الشائعة
هل درس «Counter» مجاني؟
نعم — نص درس «Counter» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Python Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Python Academy 4 دروس في المجموع.
ماذا ستتعلم في «Counter»؟
احسب عدد العناصر بسهولة تتمرن على Python Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Python Academy؟
لا تُشترط خبرة سابقة. Python Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.
كم من الوقت يستغرق درس «Counter»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Python Academy هذا؟
نعم. كل درس في Python Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.