TheProgrammer نشر 25 نوفمبر 2015 أرسل تقرير نشر 25 نوفمبر 2015 لدي قائمة بها الكثير من العناصر المتكررة وأريد الحصول على قائمة من هذه العناصر المتكررة؟ قائمتي تحتوي على أعداد صحيحة فقط. اقتباس
0 هشام رزق الله نشر 25 نوفمبر 2015 أرسل تقرير نشر 25 نوفمبر 2015 هنالك عدّة طرق للحصول على قائمة من التكرار من قائمة معينة في بايثون، فإذا افترضنا أنك لا تريد تكرار الأعداد مرة أخرى في القائمة الثانية (قائمة التكرارات) أي أن كل عدد متكرر سيتم وضعه في القائمة مرة واحدة فيمكنك فعل ذلك عن طريق كتابة سطر واحد فقط باستخدام حلقة التكرار 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)] اقتباس
السؤال
TheProgrammer
لدي قائمة بها الكثير من العناصر المتكررة وأريد الحصول على قائمة من هذه العناصر المتكررة؟ قائمتي تحتوي على أعداد صحيحة فقط.
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.