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.