logo

Program w Pythonie do znajdowania przecięcia dwóch list

W tym samouczku omówimy, w jaki sposób możemy uzyskać przecięcie dwóch list. Przecięcie dwóch list oznacza, że ​​musimy przenieść wszystkie znane elementy do obu list początkowych.

Pyton jest znany ze swojej doskonałej wbudowanej struktury danych. Lista Pythona to jeden ze znanych i cennych wbudowanych typów danych Pythona. Może przechowywać wartości różnych typów danych w posortowanej kolejności. Jednakże nie ma wbudowanej funkcji dla list takich jak zestawy.

dostosowany wyjątek w Javie

Python udostępnia wiele sposobów wykonywania przecięcia list. Zobaczmy następujący scenariusz.

Wejście :

 list1 = [40, 90, 11, 58, 31, 66, 28, 54, 79] list2 = [58, 90, 54, 31, 45, 11, 66, 28, 26] 

Wyjście:

 [90, 11, 58, 31, 66, 28, 54] 

Wejście :

 list1 = [4, 9, 1, 17, 11, 26, 28, 54, 69] list2 = [9, 9, 74, 21, 45, 11, 63, 28, 26] 

Wyjście:

 [9, 11, 26, 28] 

Zobaczmy następujące metody uzyskania przecięcia dwóch list.

Metoda - 1: Użycie pętli for

 # 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)) 

Wyjście:

 [90, 11, 58, 31, 66, 28, 54] 

Użyliśmy pętli for, aby uzyskać wspólną wartość z obu list i zapisać ją w zmiennej list3.

Metoda - 2: Konwertuj listę na ustawioną

 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)) 

Wyjście:

 [66, 90, 11, 54, 58, 28, 31] 

Metoda - 3:

Będziemy używać wbudowanych zestawów skrzyżowanie() metoda. The skrzyżowanie() jest pierwszorzędną częścią zestawu. Rozumiemy następujący przykład.

Przykład -

licznik mysqla
 # 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)) 

Wyjście:

 {66, 90, 11, 54, 58, 28, 31} 

Metoda - 4:

W tej metodzie zastosujemy metodę hybrydową. Jest to bardzo skuteczny sposób wykonania zadania. Rozumiemy następujący przykład.

Przykład -

 # 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)) 

Wyjście:

 [90, 11, 58, 31, 66, 28, 54] 

Metoda - 5:

W tej metodzie użyjemy filtr() metoda. Przecięcie odbywa się na listach podrzędnych wewnątrz innych list. Rozumiemy następujący przykład.

Przykład -

 # 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)) 

Wyjście:

 [[17, 23, 40], [10], [60]] 

The filtr() Metoda pobiera każdy element podlisty i sprawdza, czy znajduje się on na liście1. Rozumienie listy jest wykonywane dla każdej podlisty na liście2.