• 0

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

هل هنالك طريقة معينة للحصول على العنصر الشهير (الأكثر تكرارا) في سلسلة نصية معينة في بايثون؟ أريد دالة تعمل بهذه الطريقة:

>>> most_common(['duck', 'duck', 'goose'])
'duck'
>>> most_common(['goose', 'duck', 'duck', 'goose'])
'goose'

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


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

يوجد العديد من الطرق لفعل هذا في بايثون، بعضها طويلا ومعقد للغاية وبعضها قصيرا، فيمكنك على سبيل المثال إنشاء دالة بسطر واحد تحتوي على دوال مدمجة متنوعة مثل max وset كما يظهر في هذه الدالة:

def most_common(lst):
    return max(set(lst), key=lst.count)

وإذا كنت تستخدم الإصدار 2.7 من بايثون فيمكنك في هذه الحالة استخدام دالة Counter من مكتبة collections لإنشاء دالة قصيرة جدا وسريعة جدا (أسرع بكثير من المثال السابق) كما في المثال التالي:

from collections import Counter

def Most_Common(lst):
    data = Counter(lst)
    return data.most_common(1)[0][0

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


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

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

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

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


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

تسجيل الدخول

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


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