logo

Python-program til at finde skæringspunktet mellem to lister

I denne vejledning vil vi diskutere, hvordan vi kan få krydset mellem de to lister. Skæringspunktet mellem to lister betyder, at vi skal få alle de velkendte elementer til begge de indledende lister.

Python er kendt for sin fremragende indbyggede datastruktur. Python-listen er en af ​​de berømte og værdifulde indbyggede datatyper i Python. Den kan gemme de forskellige datatypers værdi i sorteret rækkefølge. Der er dog ingen indbygget funktion til lister som sæt.

dfs algoritme

Python giver de mange måder at udføre skæringen af ​​listerne på. Lad os se følgende scenarie.

Input:

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

Produktion:

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

Input:

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

Produktion:

 [9, 11, 26, 28] 

Lad os se følgende metoder til at få skæringspunktet mellem to lister.

Metode - 1: Brug for loop

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

Produktion:

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

Vi har brugt for loop for at få den fælles værdi fra begge lister og gemt den i list3-variablen.

Metode - 2: Konverter liste til sæt

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

Produktion:

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

Metode - 3:

Vi vil bruge de indbyggede sæt vejkryds() metode. Det vejkryds() er en førsteklasses del af sættet. Lad os forstå følgende eksempel.

Eksempel -

prioriteret kø java
 # 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)) 

Produktion:

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

Metode - 4:

I denne metode vil vi bruge hybridmetoden. Dette er en meget effektiv måde at udføre opgaven på. Lad os forstå følgende eksempel.

Eksempel -

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

Produktion:

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

Metode - 5:

I denne metode vil vi bruge filter() metode. Krydset udføres over underlister inde i andre lister. Lad os forstå følgende eksempel.

Eksempel -

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

Produktion:

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

Det filter() metoden tager hvert element i underlisten og kontrollerer, om det er til stede i listen1. Listeforståelsen udføres for hver underliste i listen2.