في هذا البرنامج التعليمي، سنناقش كيف يمكننا الحصول على تقاطع القائمتين. إن تقاطع قائمتين يعني أننا بحاجة إلى الحصول على جميع العناصر المألوفة في كلتا القائمتين الأوليتين.
بايثون تشتهر ببنية البيانات المدمجة الممتازة. تعد قائمة Python أحد أنواع البيانات المضمنة الشهيرة والقيمة في Python. يمكنه تخزين قيمة أنواع البيانات المختلفة بترتيب فرزها. ومع ذلك، لا توجد وظيفة مضمنة لقوائم مثل المجموعات.
سلسلة لفترة طويلة
توفر بايثون العديد من الطرق لإجراء تقاطع القوائم. دعونا نرى السيناريو التالي.
مدخل :
list1 = [40, 90, 11, 58, 31, 66, 28, 54, 79] list2 = [58, 90, 54, 31, 45, 11, 66, 28, 26]
انتاج:
[90, 11, 58, 31, 66, 28, 54]
مدخل :
list1 = [4, 9, 1, 17, 11, 26, 28, 54, 69] list2 = [9, 9, 74, 21, 45, 11, 63, 28, 26]
انتاج:
[9, 11, 26, 28]
دعونا نرى الطرق التالية للحصول على تقاطع قائمتين.
الطريقة - 1: استخدام الحلقة
# Python program to get the intersection # of two lists in most simple way def intersection_list(list1, list2): list3 = [value for value in list1 if value in list2] return list3 # Driver Code list1 = [40, 90, 11, 58, 31, 66, 28, 54, 79] list2 = [58, 90, 54, 31, 45, 11, 66, 28, 26] print(intersection_list(list1, list2))
انتاج:
[90, 11, 58, 31, 66, 28, 54]
لقد استخدمنا حلقة for للحصول على القيمة المشتركة من كلتا القائمتين وتخزينها في متغير list3.
الطريقة - 2: تحويل القائمة إلى مجموعة
def intersection_list(list1, list2): return list(set(list1) & set(list2)) list1 = [40, 90, 11, 58, 31, 66, 28, 54, 79] list2 = [58, 90, 54, 31, 45, 11, 66, 28, 26] print(intersection_list(list1, list2))
انتاج:
[66, 90, 11, 54, 58, 28, 31]
الطريقة - 3:
سوف نستخدم المجموعة المضمنة تداخل() طريقة. ال تداخل() هو جزء من الدرجة الأولى من المجموعة. دعونا نفهم المثال التالي.
مثال -
com.inttostr جافا
# Python program to get the intersection # of two lists using set() and intersection() def intersection_list(list1, list2): return set(list1).intersection(list2) list1 = [40, 90, 11, 58, 31, 66, 28, 54, 79] list2 = [58, 90, 54, 31, 45, 11, 66, 28, 26] print(intersection_list(list1, list2))
انتاج:
{66, 90, 11, 54, 58, 28, 31}
الطريقة - 4:
في هذه الطريقة سوف نستخدم الطريقة الهجينة. هذه طريقة فعالة جدًا لأداء المهمة. دعونا نفهم المثال التالي.
مثال -
# Python program to get the intersection # of two lists def intersection(list1, list2): # Use of hybrid method temp = set(list2) list3 = [value for value in list1 if value in temp] return list3 list1 = [40, 90, 11, 58, 31, 66, 28, 54, 79] list2 = [58, 90, 54, 31, 45, 11, 66, 28, 26] print(intersection(list1, list2))
انتاج:
[90, 11, 58, 31, 66, 28, 54]
الطريقة - 5:
في هذه الطريقة سوف نستخدم منقي() طريقة. يتم إجراء التقاطع على قوائم فرعية داخل قوائم أخرى. دعونا نفهم المثال التالي.
مثال -
# Python program togetthe intersection # of two lists, sublists and use of filter() def intersection_list(list1, list2): list3 = [list(filter(lambda x: x in list1, sublist)) for sublist in list2] return list3 list1 = [10, 9, 17, 40, 23, 18, 56, 49, 58, 60] list2 = [[25, 17, 23, 40, 32], [1, 10, 13, 27, 28], [60, 55, 61, 78, 15, 76]] print(intersection_list(list1, list2))
انتاج:
[[17, 23, 40], [10], [60]]
ال منقي() تأخذ الطريقة كل عنصر من القائمة الفرعية وتتحقق من وجوده في القائمة 1. يتم تنفيذ فهم القائمة لكل قائمة فرعية في القائمة2.