Bu dersimizde iki listenin kesişimini nasıl elde edebileceğimizi tartışacağız. İki listenin kesişimi, tüm tanıdık öğeleri ilk listelerin her ikisine de almamız gerektiği anlamına gelir.
Python mükemmel yerleşik veri yapısıyla tanınır. Python listesi, Python'un ünlü ve değerli yerleşik veri türlerinden biridir. Çeşitli veri türleri değerini sıralı düzende saklayabilir. Ancak kümeler gibi listeler için yerleşik bir işlev yoktur.
java'daki program
Python listelerin kesişimini gerçekleştirmenin birçok yolunu sunar. Aşağıdaki senaryoyu görelim.
Giriş:
list1 = [40, 90, 11, 58, 31, 66, 28, 54, 79] list2 = [58, 90, 54, 31, 45, 11, 66, 28, 26]
Çıktı:
[90, 11, 58, 31, 66, 28, 54]
Giriş:
list1 = [4, 9, 1, 17, 11, 26, 28, 54, 69] list2 = [9, 9, 74, 21, 45, 11, 63, 28, 26]
Çıktı:
[9, 11, 26, 28]
İki listenin kesişimini elde etmek için aşağıdaki yöntemleri görelim.
Yöntem - 1: for döngüsünü kullanma
# 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))
Çıktı:
[90, 11, 58, 31, 66, 28, 54]
Her iki listeden de ortak değeri almak için for döngüsünü kullandık ve bunu list3 değişkeninde sakladık.
Yöntem - 2: Listeyi Sete Dönüştür
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))
Çıktı:
[66, 90, 11, 54, 58, 28, 31]
Yöntem - 3:
Yerleşik seti kullanacağız kesişim() yöntem. kesişim() setin birinci sınıf bir parçasıdır. Aşağıdaki örneği anlayalım.
Örnek -
java if else ifadesi
# 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))
Çıktı:
{66, 90, 11, 54, 58, 28, 31}
Yöntem - 4:
Bu yöntemde hibrit yöntemi kullanacağız. Bu, görevi gerçekleştirmenin çok etkili bir yoludur. Aşağıdaki örneği anlayalım.
Örnek -
# 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))
Çıktı:
[90, 11, 58, 31, 66, 28, 54]
Yöntem - 5:
Bu yöntemde kullanacağımız filtre() yöntem. Kesişme, diğer listelerin içindeki alt listeler üzerinde gerçekleştirilir. Aşağıdaki örneği anlayalım.
Örnek -
# 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))
Çıktı:
[[17, 23, 40], [10], [60]]
filtre() yöntem alt listedeki her bir öğeyi alır ve liste1'de mevcut olup olmadığını kontrol eder. Liste kavrama, liste2'deki her alt liste için yürütülür.