logo

Python programma, lai atrastu divu sarakstu krustojumu

Šajā apmācībā mēs apspriedīsim, kā mēs varam iegūt abu sarakstu krustojumu. Divu sarakstu krustojums nozīmē, ka mums ir jāiegūst visi pazīstamie elementi abos sākotnējos sarakstos.

Python ir pazīstama ar savu lielisko iebūvēto datu struktūru. Python saraksts ir viens no slavenajiem un vērtīgākajiem Python iebūvētajiem datu veidiem. Tas var saglabāt dažādu datu tipu vērtības sakārtotā secībā. Tomēr sarakstiem, piemēram, kopām, nav iebūvētas funkcijas.

gadā tika izgudrots dators

Python nodrošina daudzus veidus, kā veikt sarakstu krustošanos. Apskatīsim šādu scenāriju.

Ievade:

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

Izvade:

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

Ievade:

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

Izvade:

 [9, 11, 26, 28] 

Apskatīsim šādas metodes, lai iegūtu divu sarakstu krustojumu.

1. metode: cilpas izmantošana

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

Izvade:

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

Mēs esam izmantojuši cilpu, lai iegūtu kopējo vērtību no abiem sarakstiem, un saglabājām to mainīgajā list3.

2. metode: pārveidojiet sarakstu par iestatījumu

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

Izvade:

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

3. metode:

Mēs izmantosim iebūvēto komplektu krustojums () metodi. The krustojums () ir pirmās klases komplekta sastāvdaļa. Sapratīsim šādu piemēru.

Piemērs -

iemet java izņēmumu apstrādi
 # 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)) 

Izvade:

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

4. metode:

Šajā metodē mēs izmantosim hibrīda metodi. Tas ir ļoti efektīvs veids, kā veikt uzdevumu. Sapratīsim šādu piemēru.

Piemērs -

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

Izvade:

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

5. metode:

Šajā metodē mēs izmantosim filtrs () metodi. Krustojums tiek veikts pa apakšsarakstiem citos sarakstos. Sapratīsim šādu piemēru.

Piemērs -

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

Izvade:

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

The filtrs () metode ņem katru apakšsaraksta vienumu un pārbauda, ​​vai tas ir iekļauts sarakstā1. Saraksta izpratne tiek izpildīta katram saraksta2 apakšsarakstam.