logo

Program Python za iskanje presečišča dveh seznamov

V tej vadnici bomo razpravljali o tem, kako lahko dobimo presečišče obeh seznamov. Presečišče dveh seznamov pomeni, da moramo dobiti vse znane elemente na oba začetna seznama.

Python je znan po odlični vgrajeni strukturi podatkov. Seznam Python je eden od znanih in dragocenih vgrajenih podatkovnih tipov Python. Lahko shrani različne vrednosti tipov podatkov v razvrščenem vrstnem redu. Vendar pa ni vgrajene funkcije za sezname, kot so nabori.

kako prebrati datoteko csv v javi

Python ponuja številne načine za izvedbo preseka seznamov. Poglejmo si naslednji scenarij.

Vnos:

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

Izhod:

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

Vnos:

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

Izhod:

 [9, 11, 26, 28] 

Oglejmo si naslednje metode za pridobitev presečišča dveh seznamov.

Metoda - 1: Uporaba zanke 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)) 

Izhod:

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

Za pridobitev skupne vrednosti z obeh seznamov smo uporabili zanko for in jo shranili v spremenljivko list3.

2. način: Pretvori seznam v nabor

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

Izhod:

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

Metoda - 3:

Uporabili bomo vgradne garniture križišče() metoda. The križišče() je prvovrsten del kompleta. Razumejmo naslednji primer.

Primer -

kako dostopati do fotografij icloud
 # 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)) 

Izhod:

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

Metoda - 4:

Pri tej metodi bomo uporabili hibridno metodo. To je zelo učinkovit način za opravljanje naloge. Razumejmo naslednji primer.

Primer -

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

Izhod:

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

Metoda - 5:

Pri tej metodi bomo uporabili filter() metoda. Presek se izvaja nad podseznami znotraj drugih seznamov. Razumejmo naslednji primer.

Primer -

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

Izhod:

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

The filter() metoda vzame vsak element podseznama in preveri, ali je prisoten na seznamu1. Razumevanje seznama se izvede za vsak podseznam na seznamu2.