logo

كيفية مقارنة قائمتين في بايثون

توفر بايثون طرقًا متعددة لمقارنة القائمتين. المقارنة هي العملية التي يتم فيها فحص عناصر البيانات مقابل عنصر بيانات آخر في القائمة، سواء كانت هي نفسها أم لا.

 list1 - [11, 12, 13, 14, 15] list2 - [11, 12, 13, 14, 15] Output - The lists are equal 

وترد أدناه طرق المقارنة بين قائمتين.

  • الدالة cmp()
  • الدالة set() وعامل التشغيل ==
  • وظيفة الفرز () وعامل التشغيل ==
  • الدالة Collection.counter()
  • وظيفة تقليل () وخريطة ().

الدالة cmp()

ال بايثون تقوم الدالة cmp()‎ بمقارنة كائني Python وإرجاع القيم الصحيحة -1، 0، 1 وفقًا للمقارنة.

ملاحظة - لا يُستخدم في إصدار Python 3.x.

الدالة set() وعامل التشغيل ==

بايثون تعيين() وظيفة التعامل مع القائمة في المجموعة دون الاهتمام بترتيب العناصر. بالإضافة إلى ذلك، نستخدم عامل التشغيل (==) لمقارنة عناصر البيانات في القائمة. دعونا نفهم المثال التالي.

مربع القائمة جافا

مثال -

 list1 = [11, 12, 13, 14, 15] list2 = [12, 13, 11, 15, 14] a = set(list1) b = set(list2) if a == b: print('The list1 and list2 are equal') else: print('The list1 and list2 are not equal') 

انتاج:

 The list1 and list2 are equal 

توضيح:

في المثال أعلاه، أعلنا عن مقارنة القائمتين مع بعضهما البعض. قمنا بتحويل هذه القوائم إلى المجموعة وقارنا كل عنصر بمساعدة عامل التشغيل ==. جميع العناصر متساوية في كلا القائمتين، فإذا تم تنفيذ الكتلة وطباعة النتيجة.

طريقة الفرز () مع عامل التشغيل ==

بايثون نوع() يتم استخدام الدالة لفرز القوائم. عناصر القائمة نفسها لها نفس موضع الفهرس الذي تعنيه؛ القوائم متساوية.

ملاحظة - في طريقة الترتيب () يمكننا تمرير عناصر القائمة بأي ترتيب لأننا نقوم بفرز القائمة قبل المقارنة.

دعونا نفهم المثال التالي -

طريقة جافا الرئيسية

مثال -

 import collections list1 = [10, 20, 30, 40, 50, 60] list2 = [10, 20, 30, 50, 40, 70] list3 = [50, 10, 30, 20, 60, 40] # Sorting the list list1.sort() list2.sort() list3.sort() if list1 == list2: print('The list1 and list2 are the same') else: print('The list1 and list3 are not the same') if list1 == list3: print('The list1 and list2 are not the same') else: print('The list1 and list2 are not the same') 

انتاج:

 The list1 and list3 are not the same The list1 and list2 are not the same 

الدالة Collection.counter()

توفر وحدة التجميع عداد()، التي تقارن القائمة بكفاءة. يقوم بتخزين البيانات بتنسيق القاموس: ويحسب تكرار عناصر القائمة.

سنتوس مقابل ريل

ملاحظة - لا يهم ترتيب عناصر القائمة في هذه الوظيفة.

مثال -

 import collections list1 = [10, 20, 30, 40, 50, 60] list2 = [10, 20, 30, 50, 40, 70] list3 = [50, 10, 30, 20, 60, 40] if collections.Counter(list1) == collections.Counter(list2): print('The lists l1 and l2 are the same') else: print('The lists l1 and l2 are not the same') if collections.Counter(list1) == collections.Counter(list3): print('The lists l1 and l3 are the same') else: print('The lists l1 and l3 are not the same') 

انتاج:

 The lists list1 and list2 are not the same The lists list1 and list3 are the same 

التخفيض () والخريطة ()

ال خريطة() تقبل الدالة دالة وكائن Python القابل للتكرار (قائمة، صف، سلسلة، إلخ) كوسيطات وترجع كائن خريطة. يتم تنفيذ الوظيفة على كل عنصر من عناصر القائمة وإرجاع مكرر نتيجة لذلك.

إلى جانب ال يقلل() تنفذ الطريقة الوظيفة المحددة للكائن القابل للتكرار بشكل متكرر.

هنا، سوف نستخدم كلتا الطريقتين معًا. ال خريطة() ستقوم الوظيفة بتنفيذ الوظيفة (يمكن أن تكون وظيفة تعريف المستخدم أو وظيفة لامدا) على كل كائن قابل للتكرار و يقلل() وظيفة رعاية ذلك من شأنها أن تنطبق بطريقة متكررة.

ملاحظة - نحن بحاجة إلى استيراد وحدة functool لاستخدام وظيفة التخفيض ().

دعونا نفهم المثال التالي.

مثال -

 import functools list1 = [10, 20, 30, 40, 50] list2 = [10, 20, 30, 50, 40, 60, 70] list3 = [10, 20, 30, 40, 50] if functools.reduce(lambda x, y: x and y, map(lambda a, b: a == b, list1, list2), True): print('The list1 and list2 are the same') else: print('The list1 and list2 are not the same') if functools.reduce(lambda x, y: x and y, map(lambda a, b: a == b, list1, list3), True): print('The list1 and list3 are the same') else: print('The list1 and list3 are not the same') 

انتاج:

مشغلي جافا
 The list1 and list2 are not the same The list1 and list3 are the same 

في هذا القسم، تناولنا طرقًا مختلفة لمقارنة قائمتين في بايثون.