Kryss
Før du begynner på denne veiledningen, vil begrepet skjæringspunkt bli forklart. Nedenfor er to gitt som et eksempel:
Liste1 = [4, 7, 23, 9, 6, 11]Liste2 = [6, 5, 1, 20, 9, 7, 4, 3]
Etter at krysset er brukt, hvis resultatet er lagret i en annen liste, kanskje kalt List3, vil den inneholde følgende data.
Liste3 = [4, 6, 7, 9]Den grafiske representasjonen av List3 er vist nedenfor:
Eksempel 1: Kryssende lister via set () -metoden
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 erklært her. Begge disse listene inneholder numeriske verdier. Den tredje listen genereres ved å konvertere liste1 og liste 2 til settet via settet() metode og bruke kryss ved å bruke & operatør. Deretter skrives verdiene til de tre listene ut.
#!/ usr / bin / env python3# Definer liste1
liste1 = [22, 8, 45, 11, 34, 9, 20, 7]
# Definer liste2
liste2 = [12, 9, 20, 78, 53, 8, 2, 30,31]
# Opprett liste3 ved å krysse liste1 og liste2
list3 = liste (sett (liste1) & sett (liste2))
# Skriv ut liste1
print ("Verdiene til liste1: \ n", liste1)
# Skriv ut liste2
print ("Verdiene til liste2: \ n", liste2)
# Skriv ut liste 3
print ("Verdiene til liste3 etter kryssende liste1 og liste2: \ n", liste3)
Produksjon
Følgende utdata vises etter kjøring av skriptet. Tre verdier er felles for begge listene. Disse verdiene er 8, 9 og 20, og vises i innholdet på den tredje listen.
Eksempel 2: Kryssende lister via skjæringsmetoden ()
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 vanlige verdiene mellom settene. En tilpasset funksjon, kalt intersectionLists (), er definert i følgende skript 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 datastrenger, inkludert numerisk, boolsk osv. I manuset, liste1 og liste2 inneholder alle strengdata inkludert og tekst. Skriptet vil skrive ut alle vanlige streng- og numeriske verdier mellom liste1 og liste2.
#!/ usr / bin / env python3# Definer funksjonen for å returnere skjæringspunktet mellom to lister
def intersectLists (liste1, liste2):
retur sett (liste1).kryss (liste2)
# Definer liste1
list1 = ['Hei', '7', '8', '10', '2']
# Definer liste2
list2 = ['8', '34', 'Hei', '2', '21', '1', 10]
"Ring den egendefinerte funksjonen for å lagre
kryssresultatet for liste1 og liste2
inn i liste3 "
list3 = intersectLists (liste1, liste2)
# Skriv ut liste1
print ("Verdiene til liste1: \ n", liste1)
# Skriv ut liste2
print ("Verdiene til liste2: \ n", liste2)
# Skriv ut liste 3
print ("Verdiene til liste3 etter kryssende liste1 og liste2: \ n", liste3)
Produksjon
Følgende utdata vises etter kjøring av skriptet. Her er vanlige verdier mellom de to listene '2', '8' og 'Hei.'
Eksempel 3: Kryssende lister via loop-metoden
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 erklært i skriptet. De til loop brukes her for å finne ut de vanlige tekstverdiene mellom liste1 og liste2, og som er lagret i variabelen, liste3. Deretter skrives verdiene til disse tre listevariablene ut.
#!/ usr / bin / env python3# Definer liste1
list1 = ['Farhan', 'Abir', 'Akash', 'Meena', 'Mazher']
# Definer liste2
list2 = ['Meena', 'Moyna', 'Nobel', 'Naher', 'Abir', 'Farheen']
# Finn krysset ved hjelp av for loop og lagre resultatet i liste3
liste3 = [verdi for verdi i liste1 hvis verdi i liste2]
# Skriv ut liste1
print ("Verdiene til liste1: \ n", liste1)
# Skriv ut liste2
print ("Verdiene til liste2: \ n", liste2)
# Skriv ut liste 3
print ("Verdiene til liste3 etter kryssende liste1 og liste2: \ n", liste3)
Produksjon
Følgende utdata vises etter kjøring av skriptet. 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 funksjonen brukes i skriptet for å lede skjæringspunktet mellom liste1 og liste2. Når en liste inneholder en eller flere lister som listeelementer, kalles listen en nestet liste. Her, liste1 er en enkel liste, og liste2 er en nestet liste, mens liste3 inneholder kryssverdiene til liste1 og liste2.
#!/ usr / bin / env python3# Definer en enkel liste
liste1 = [22, 8, 45, 11, 34, 9, 20, 7]
# Definer en nestet liste
liste2 = [[12, 9, 20], [78, 11, 53, 8], [2, 30, 31, 45]]
# Opprett liste3 ved å krysse liste1 og liste2 ved hjelp av filter ()
list3 = [liste (filter (lambda n: n i liste1, liste)) for liste i liste2]
# Skriv ut liste1
print ("Verdiene til liste1: \ n", liste1)
# Skriv ut liste2
print ("Verdiene til liste2: \ n", liste2)
# Skriv ut liste 3
print ("Verdiene til liste3 etter kryssende liste1 og liste2: \ n", liste3)
Produksjon
Følgende utdata vises etter kjøring av skriptet. List2-variabelen inneholder tre andre lister som listeelementer. Så resultatet viser skjæringspunktet mellom disse tre underlistene til liste2 med liste1.
Konklusjon
Listekryss er en nyttig måte å finne de vanlige verdiene mellom lister som inneholder et stort antall listeelementer. Metoder for å utføre listekryss med og uten innebygde funksjoner vises i denne veiledningen. 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 den måten som vises i denne veiledningen.