logo

Python program za pronalaženje presjeka dvaju popisa

U ovom vodiču raspravljat ćemo o tome kako možemo dobiti presjek dvaju popisa. Sjecište dvaju popisa znači da moramo dobiti sve poznate elemente na oba početna popisa.

Piton je poznat po izvrsnoj ugrađenoj strukturi podataka. Python popis jedan je od poznatih i vrijednih ugrađenih tipova podataka Pythona. Može pohraniti različite vrijednosti tipova podataka sortiranim redoslijedom. Međutim, ne postoji ugrađena funkcija za popise poput skupova.

javascript if izjava

Python nudi mnogo načina za izvođenje presjeka lista. Pogledajmo sljedeći scenarij.

unos:

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

Izlaz:

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

unos:

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

Izlaz:

 [9, 11, 26, 28] 

Pogledajmo sljedeće metode za dobivanje presjeka dviju lista.

Metoda - 1: Korištenje for petlje

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

Izlaz:

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

Koristili smo for petlju za dobivanje zajedničke vrijednosti s obje liste i pohranili je u varijablu list3.

Metoda - 2: Pretvorite popis u skup

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

Izlaz:

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

Metoda - 3:

Koristit ćemo ugrađene setove križanje() metoda. The križanje() je prvorazredni dio kompleta. Razumimo sljedeći primjer.

Primjer -

veličina lateks slova
 # 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)) 

Izlaz:

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

Metoda - 4:

U ovoj metodi koristit ćemo se hibridnom metodom. Ovo je vrlo učinkovit način za obavljanje zadatka. Razumimo sljedeći primjer.

Primjer -

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

Izlaz:

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

Metoda - 5:

U ovoj metodi koristit ćemo se filtar() metoda. Presjek se izvodi preko pod-lista unutar drugih lista. Razumimo sljedeći primjer.

Primjer -

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

Izlaz:

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

The filtar() metoda uzima svaku stavku s podliste i provjerava je li prisutna na listi1. Razumijevanje popisa izvodi se za svaku podlistu na listi2.