Python Programming

إزالة المكررات من قوائم بايثون بكفاءة

Spread the love

تتميز قوائم بايثون بقدرتها على التنوع، إلا أن معالجة العناصر المكررة بكفاءة تُعد مهمة برمجية شائعة. يستعرض هذا المقال طريقتين فعالتين لإزالة المكررات من قائمة بايثون: الاستفادة من دالة set() المدمجة من أجل السرعة، واستخدام OrderedDict للحفاظ على الترتيب الأصلي للعناصر.

جدول المحتويات

إزالة المكررات باستخدام طريقة set()

أسرع طريقة لإزالة المكررات هي استخدام دالة set(). المجموعات هي مجموعات غير مرتبة من عناصر فريدة. يؤدي تحويل القائمة إلى مجموعة إلى إزالة المكررات تلقائيًا. ومع ذلك، فإن هذه الطريقة تغير الترتيب الأصلي.


my_list = [1, 2, 2, 3, 4, 4, 5, 1]

# تحويل القائمة إلى مجموعة لإزالة المكررات
unique_elements = set(my_list)

# تحويل المجموعة مرة أخرى إلى قائمة (قد يتغير الترتيب)
unique_list = list(unique_elements)

print(f"القائمة الأصلية: {my_list}")
print(f"القائمة بعد إزالة المكررات: {unique_list}")

النتيجة:


القائمة الأصلية: [1, 2, 2, 3, 4, 4, 5, 1]
القائمة بعد إزالة المكررات: [1, 2, 3, 4, 5]

لاحظ التغيير المحتمل في ترتيب العناصر.

الحفاظ على الترتيب باستخدام OrderedDict

لإزالة المكررات مع الحفاظ على الترتيب الأصلي، استخدم OrderedDict من وحدة collections. يحافظ OrderedDict على ترتيب الإدراج.


from collections import OrderedDict

my_list = [1, 2, 2, 3, 4, 4, 5, 1]

# استخدام OrderedDict لإزالة المكررات مع الحفاظ على الترتيب
unique_list_ordered = list(OrderedDict.fromkeys(my_list))

print(f"القائمة الأصلية: {my_list}")
print(f"القائمة بعد إزالة المكررات مع الحفاظ على الترتيب: {unique_list_ordered}")

النتيجة:


القائمة الأصلية: [1, 2, 2, 3, 4, 4, 5, 1]
القائمة بعد إزالة المكررات مع الحفاظ على الترتيب: [1, 2, 3, 4, 5]

الترتيب مطابق للقائمة المدخلة.

اختيار النهج الأمثل

إذا لم يكن الترتيب ذا أهمية، فإن طريقة set() توفر سرعة أفضل. إذا كان الحفاظ على الترتيب الأصلي ذا أهمية قصوى، فإن OrderedDict هو الخيار الأفضل، على الرغم من أنه قد يكون أبطأ قليلاً للقوائم الكبيرة جدًا. بالنسبة لمعظم التطبيقات، سيكون فرق الأداء ضئيلاً. اختر الطريقة التي تتوافق بشكل أفضل مع احتياجاتك.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *