• 0

كيف أنشئ قاموس لحساب تكرارات العناصر في قائمة في بايثون؟

أملك القائمة التالية:

['apple','red','apple','red','red','pear']

وأريد حساب تكرارات كل عنصر فيها وتكون قاموس به كل عنصر وعدد تكراراته كالتالي:

{'apple': 2, 'red': 3, 'pear': 1}

فما أسهل طريقة لفعل ذلك في لغة بايثون؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

يوجد عدة طرق في لغة بايثون لفعل ذلك، فإذا كنت تستخدم الإصدار 2.7 أو 3.1 من بايثون فيمكنك استعمال دالة Counter من وحدة collections كما في المثال التالي:

>>> from collections import Counter
>>> Counter(['apple','red','apple','red','red','pear'])
Counter({'red': 3, 'apple': 2, 'pear': 1})

أو يمكنك استخدام هذه الطريقة (أطول قليلا من سابقتها) وذلك عن طريق استعمال دالة defaultdict من وحدة collections مع حلقة التكرار for كما في المثال التالي:

>>> L = ['apple','red','apple','red','red','pear']
>>> from collections import defaultdict
>>> d = defaultdict(int)
>>> for i in L:
...   d[i] += 1
>>> d
defaultdict(<type 'int'>, {'pear': 1, 'apple': 2, 'red': 3})

وهذه طريقة أخرى لفعل ذلك:

counts = dict()
for i in items:
  counts[i] = counts.get(i, 0) + 1

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن