Listekryss i Python

List Intersection Python



Mange objektvariabler eksisterer i python for å lagre en rekke datatyper. De liste er en av disse variablene og kan lagre forskjellige typer data for forskjellige behov. Noen ganger må vi finne vanlige, uvanlige eller både vanlige og uvanlige dataelementer fra flere lister for programmeringsformål. Python inneholder flere innebygde funksjoner og operatører som kan utføre denne typen oppgaver for Python-sett. Å finne vanlige data fra flere lister kalles listekryss, men det er ingen operatør eller innebygd funksjon for lister som sett for å finne de vanlige dataelementene fra flere lister. Denne opplæringen viser deg hvordan du krysser lister i Python.

Kryss

Før du starter denne opplæringen, vil begrepet kryss bli forklart. Nedenfor er to gitt som et eksempel:







Liste 1= [4, 7, 2. 3, 9, 6, elleve]
Liste 2= [6, 5, 1, tjue, 9, 7, 4, 3]

Etter at krysset er påført, hvis resultatet er lagret i en annen liste, kanskje kalt List3, vil det inneholde følgende data.



Liste 3= [4, 6, 7, 9]

Den grafiske fremstillingen av List3 er vist nedenfor:







Eksempel 1: Krysser lister via metoden set ()

Følgende eksempel viser hvordan du kan krysse to lister ved hjelp av sett() metoden og & operatør. To lister, navngitt liste1 og liste2, er deklarert her. Begge disse listene inneholder numeriske verdier. Den tredje listen genereres ved å konvertere list1 og liste 2 til settet via settet () metode og bruk av kryss ved å bruke & operatør. Deretter skrives verdiene til de tre listene ut.

#!/usr/bin/env python3
# Definer liste 1
liste 1= [22, 8, Fire fem, elleve, 3. 4, 9, tjue, 7]
# Definer liste2
liste 2= [12, 9, tjue, 78, 53, 8, 2, 30,31]
# Lag list3 ved å krysse list1 og list2
liste 3= liste(sett(liste 1)&sett(liste 2))
# Skriv ut liste 1
skrive ut('Verdiene i list1: n',liste 1)
# Skriv ut liste2
skrive ut('Verdiene i list2: n',liste 2)
# Skriv ut liste3
skrive ut('Verdiene til list3 etter kryssende liste1 og liste2: n',liste 3)

Produksjon



Følgende utdata vises etter at skriptet er kjørt. Tre verdier er felles for begge listene. Disse verdiene er 8, 9 og 20, og vises i innholdet i den tredje listen.

Eksempel 2: Kryssingslister via kryssingsmetoden ()

Det er ingen direkte, innebygd metode for listeobjektet for å finne ut skjæringsverdiene mellom to lister. Settet har imidlertid en innebygd metode, navngitt kryss() , for å finne ut de felles verdiene mellom settene. En tilpasset funksjon, navngitt intersectionLists () , er definert i det følgende skriptet for å finne ut de vanlige verdiene mellom de to listene. En begrensning av dette settet er at det bare kan inneholde numeriske data. En listevariabel kan inneholde forskjellige typer datastreng, inkludert numerisk, boolsk, etc. I skriptet liste 1 og liste 2 inneholder alle strengdata inkludert og tekst. Skriptet vil skrive ut alle vanlige strenger og numeriske verdier mellom liste 1 og liste 2 .

#!/usr/bin/env python3

# Definer funksjonen for å returnere krysset mellom to lister
defintersectLists(liste 1,liste 2):
komme tilbake sett(liste 1).kryss(liste 2)

# Definer liste 1
liste 1= ['Hallo','7','8','10','2']
# Definer liste2
liste 2= ['8','3. 4','Hallo','2','tjueen','1',10]
'' 'Ring den egendefinerte funksjonen for å lagre
skjæringsresultatet av list1 og list2
i list3 '' '

liste 3=intersectLists(liste 1,liste 2)
# Skriv ut liste 1
skrive ut('Verdiene i list1: n',liste 1)
# Skriv ut liste2
skrive ut('Verdiene i list2: n',liste 2)
# Skriv ut liste3
skrive ut('Verdiene til list3 etter kryssende liste1 og liste2: n',liste 3)

Produksjon

Følgende utdata vises etter at skriptet er kjørt. Her er vanlige verdier mellom de to listene '2', '8' og 'Hei'.

Eksempel 3: Kryssingslister via sløyfemetoden

De to foregående eksemplene viser listekryss ved hjelp av innebygde funksjoner. Følgende eksempel viser listekryss uten noen innebygd funksjon. Dette kan oppnås ved å bruke løkken. To lister med tekstdata er deklarert i skriptet. De til loop brukes her for å finne ut de vanlige tekstverdiene mellom liste 1 og list2, og som er lagret i variabelen, liste 3 . Deretter skrives verdiene for disse tre listevariablene ut.

#!/usr/bin/env python3

# Definer liste 1
liste 1= ['Farhan','Abir','Akash','Meena','Mazher']
# Definer liste2
liste 2= ['Meena','Moyna','Nobel','Tettere','Abir','Farheen']
# Finn krysset ved hjelp av loop og lagre resultatet i list3
liste 3= [verditilverdiiliste 1hvisverdiiliste 2]

# Skriv ut liste 1
skrive ut('Verdiene i list1: n',liste 1)
# Skriv ut liste2
skrive ut('Verdiene i list2: n',liste 2)
# Skriv ut liste3
skrive ut('Verdiene til list3 etter kryssende liste1 og liste2: n',liste 3)

Produksjon

Følgende utdata vises etter at skriptet er kjørt. Her er de vanlige tekstverdiene til de to listene 'Abir' og 'Meena.'

Eksempel 4: Kryssing av enkle og nestede lister via filter () -metoden

Følgende eksempel viser skjæringspunktet mellom en enkel liste og en nestet liste. De filter() metode og lambda funksjon brukes i skriptet for å utføre krysset mellom list1 og list2. Når en liste inneholder en eller flere lister som listeelementer, kalles listen en nestet liste. Her, liste 1 er en enkel liste, og liste 2 er en nestet liste, mens liste 3 inneholder kryssverdiene til liste 1 og liste 2 .

#!/usr/bin/env python3

# Definer en enkel liste
liste 1= [22, 8, Fire fem, elleve, 3. 4, 9, tjue, 7]
# Definer en nestet liste
liste 2= [[12, 9, tjue], [78, elleve, 53, 8], [2, 30, 31, Fire fem]]
# Lag list3 ved å krysse list1 og list2 ved hjelp av filter ()
liste 3= [liste(filter(lambdan: niliste 1,slist)) tilslistiliste 2]

# Skriv ut liste 1
skrive ut('Verdiene i list1: n',liste 1)
# Skriv ut liste2
skrive ut('Verdiene i list2: n',liste 2)
# Skriv ut liste3
skrive ut('Verdiene til list3 etter kryssende liste1 og liste2: n',liste 3)

Produksjon

Følgende utdata vises etter at skriptet er kjørt. List2 -variabelen inneholder tre andre lister som listeelementer. Så resultatet viser skjæringspunktet mellom disse tre underlistene i liste2 med liste1.

Konklusjon

Lyskryss er en nyttig måte å finne de vanlige verdiene mellom lister som inneholder et stort antall listeelementer. Metoder for å utføre skjæringspunkt med og uten innebygde funksjoner er vist i denne opplæringen. Etter å ha lest denne artikkelen, bør konseptet med listekrysset være klart, og du bør kunne bruke listekryss i skriptet ditt ved å følge en måte som vises i denne opplæringen.