• 0

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

لدي قائمة بها الكثير من العناصر المتكررة وأريد الحصول على قائمة من هذه العناصر المتكررة؟ قائمتي تحتوي على أعداد صحيحة فقط.

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


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

هنالك عدّة طرق للحصول على قائمة من التكرار من قائمة معينة في بايثون، فإذا افترضنا أنك لا تريد تكرار الأعداد مرة أخرى في القائمة الثانية (قائمة التكرارات) أي أن كل عدد متكرر سيتم وضعه في القائمة مرة واحدة فيمكنك فعل ذلك عن طريق كتابة سطر واحد فقط باستخدام حلقة التكرار for والجملة الشرطية ودالة Counter() من وحدة collections كما في المثال التالي:

a = [1,2,3,2,1,5,6,5,5,5]

import collections
print [item for item, count in collections.Counter(a).items() if count > 1]

## [1, 2, 5]

كما يمكنك فعل ذلك أيضا عن طريق استخدام set والذي سيكون في هذه الحالة أفضل من استعمال Counter:

seen = set()
uniq = []
for x in a:
    if x not in seen:
        uniq.append(x)
        seen.add(x)

أو بشكل مختصر أكثر:

seen = set()
uniq = [x for x in a if x not in seen and not seen.add(x)]    

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


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

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

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

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


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

تسجيل الدخول

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


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