Listkorsning i Python

List Intersection Python



Många objektvariabler finns i python för att lagra en mängd olika datatyper. De lista är en av dessa variabler och kan lagra olika typer av data för olika behov. Ibland måste vi hitta vanliga, ovanliga eller både vanliga och ovanliga dataposter från flera listor för programmeringsändamål. Python innehåller flera inbyggda funktioner och operatörer som kan utföra dessa typer av uppgifter för Python-uppsättningar. Att hitta vanliga data från flera listor kallas listkorsning, men det finns ingen operatör eller inbyggd funktion för listor som uppsättningar för att hitta de vanliga dataposterna från flera listor. Denna handledning visar dig hur du skär listor i Python.

Genomskärning

Innan du börjar denna handledning kommer begreppet korsning att förklaras. Nedan ges två som ett exempel:







Lista 1= [4, 7, 2. 3, 9, 6, elva]
List2= [6, 5, 1, tjugo, 9, 7, 4, 3]

Efter att korsningen tillämpats, om resultatet är lagrat i en annan lista, kanske namnet List3, kommer det att innehålla följande data.



List3= [4, 6, 7, 9]

Den grafiska representationen av List3 visas nedan:







Exempel 1: Skärningslistor via metoden set ()

Följande exempel visar hur du kan skär två listor med uppsättning() metod och & operatör. Två listor, namngivna list1 och list2, deklareras här. Båda dessa listor innehåller numeriska värden. Den tredje listan genereras genom att konvertera lista1 och lista 2 till uppsättningen via uppsättningen () metod och tillämpa korsningen med hjälp av & operatör. Därefter skrivs värdena för de tre listorna ut.

#!/usr/bin/env python3
# Definiera lista1
lista 1= [22, 8, Fyra fem, elva, 3. 4, 9, tjugo, 7]
# Definiera lista2
lista2= [12, 9, tjugo, 78, 53, 8, 2, 30,31]
# Skapa list3 genom att korsa list1 och list2
lista3= lista(uppsättning(lista 1)&uppsättning(lista2))
# Skriv ut lista1
skriva ut('Värdena i list1: n',lista 1)
# Skriv ut lista2
skriva ut('Värdena i list2: n',lista2)
# Skriv ut lista3
skriva ut('List3s värden efter skärningslista list1 och list2: n',lista3)

Produktion



Följande utdata visas efter att manuset har körts. Tre värden är gemensamma för båda listorna. Dessa värden är 8, 9 och 20 och visas i innehållet i den tredje listan.

Exempel 2: Korsningslistor via metoden ()

Det finns ingen direkt, inbyggd metod för listaobjektet för att ta reda på skärningsvärdena mellan två listor. Men uppsättningen har en inbyggd metod, namngiven genomskärning() , för att ta reda på de gemensamma värdena mellan uppsättningarna. En anpassad funktion, namngiven intersectionLists () , definieras i följande skript för att ta reda på de gemensamma värdena mellan de två listorna. En begränsning av denna uppsättning är att den endast kan innehålla numerisk data. En listvariabel kan innehålla olika typer av datasträng, inklusive numeriska, booleska, etc. I skriptet, lista 1 och lista2 innehåller alla strängdata inklusive och text. Skriptet kommer att skriva ut alla vanliga strängar och numeriska värden mellan lista 1 och lista2 .

#!/usr/bin/env python3

# Definiera funktionen för att returnera skärningspunkten mellan två listor
defintersectLists(lista 1,lista2):
lämna tillbaka uppsättning(lista 1).genomskärning(lista2)

# Definiera lista1
lista 1= ['Hej','7','8','10','2']
# Definiera lista2
lista2= ['8','3. 4','Hej','2','tjugoett','1',10]
'' 'Ring den anpassade funktionen för att lagra
skärningsresultatet för list1 och list2
in list3 '' '

lista3=intersectLists(lista 1,lista2)
# Skriv ut lista1
skriva ut('Värdena i list1: n',lista 1)
# Skriv ut lista2
skriva ut('Värdena i list2: n',lista2)
# Skriv ut lista3
skriva ut('List3s värden efter skärningslista list1 och list2: n',lista3)

Produktion

Följande utdata visas efter att manuset har körts. Här är vanliga värden mellan de två listorna '2', '8' och 'Hej'.

Exempel 3: Korsning av listor via loop -metoden

De två föregående exemplen visar listkorsning med hjälp av inbyggda funktioner. Följande exempel visar listkorsning utan någon inbyggd funktion. Detta kan uppnås genom att använda slingan. Två listor med textdata deklareras i skriptet. De för loop används här för att ta reda på de vanliga textvärdena mellan lista 1 och lista2, och som lagras i variabeln, lista3 . Därefter skrivs värdena för dessa tre listvariabler ut.

#!/usr/bin/env python3

# Definiera lista1
lista 1= ['Farhan','Abir','Akash','Meena','Mazher']
# Definiera lista2
lista2= ['Meena','Moyna','Nobel','Närmare','Abir','Farheen']
# Hitta korsningen med hjälp av loop och lagra resultatet i list3
lista3= [värdeförvärdeilista 1omvärdeilista2]

# Skriv ut lista1
skriva ut('Värdena i list1: n',lista 1)
# Skriv ut lista2
skriva ut('Värdena i list2: n',lista2)
# Skriv ut lista3
skriva ut('List3s värden efter skärningslista list1 och list2: n',lista3)

Produktion

Följande utdata visas efter att manuset har körts. Här är de vanliga textvärdena för de två listorna 'Abir' och 'Meena.'

Exempel 4: Korsning av enkla och kapslade listor via filter () -metoden

Följande exempel visar skärningspunkten mellan en enkel lista och en kapslad lista. De filtrera() metod och lambda funktion används i skriptet för att genomföra skärningspunkten mellan list1 och list2. När en lista innehåller en eller flera listor som listobjekt, kallas listan för en kapslad lista. Här, lista 1 är en enkel lista, och lista2 är en kapslad lista, medan lista3 innehåller skärningsvärdena för lista 1 och lista2 .

#!/usr/bin/env python3

# Definiera en enkel lista
lista 1= [22, 8, Fyra fem, elva, 3. 4, 9, tjugo, 7]
# Definiera en kapslad lista
lista2= [[12, 9, tjugo], [78, elva, 53, 8], [2, 30, 31, Fyra fem]]
# Skapa list3 genom att korsa list1 och list2 med filter ()
lista3= [lista(filtrera(lambdan: nilista 1,slist)) förslistilista2]

# Skriv ut lista1
skriva ut('Värdena i list1: n',lista 1)
# Skriv ut lista2
skriva ut('Värdena i list2: n',lista2)
# Skriv ut lista3
skriva ut('List3s värden efter skärningslista list1 och list2: n',lista3)

Produktion

Följande utdata visas efter att manuset har körts. List2 -variabeln innehåller tre andra listor som listobjekt. Så resultatet visar skärningspunkten mellan dessa tre underlistor i lista2 med lista1.

Slutsats

Listkorsning är ett användbart sätt att hitta de gemensamma värdena mellan listor som innehåller ett stort antal listobjekt. Metoder för att utföra listkorsning med och utan inbyggda funktioner visas i denna handledning. Efter att ha läst den här artikeln bör konceptet med listkorsningen vara tydligt, och du bör kunna tillämpa listkorsningen i ditt manus genom att följa alla sätt som visas i den här självstudien.