Vejkryds
Inden du begynder på denne vejledning, vil begrebet skæringspunkt blive forklaret. Nedenfor er to angivet som et eksempel:
Liste1 = [4, 7, 23, 9, 6, 11]Liste2 = [6, 5, 1, 20, 9, 7, 4, 3]
Efter at krydset er anvendt, hvis resultatet er gemt på en anden liste, måske navngivet List3, vil det indeholde følgende data.
Liste3 = [4, 6, 7, 9]Den grafiske gengivelse af Liste 3 er vist nedenfor:
Eksempel 1: Skæringslister via metoden set ()
Følgende eksempel viser, hvordan du kan krydse to lister ved hjælp af sæt() metode og & operatør. To lister, navngivet liste1 og liste2, erklæres her. Begge disse lister indeholder numeriske værdier. Den tredje liste genereres ved at konvertere liste 1 og liste 2 til sættet via sættet() metode og anvendelse af krydset ved hjælp af & operatør. Derefter udskrives værdierne for de tre lister.
#!/ 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]
# Opret liste3 ved at krydse liste1 og liste2
liste3 = liste (sæt (liste1) & sæt (liste2))
# Udskriv liste1
print ("Værdierne for liste1: \ n", liste1)
# Udskriv liste2
print ("Værdierne for liste2: \ n", liste2)
# Udskriv liste 3
print ("Værdierne for liste3 efter skæring af liste1 og liste2: \ n", liste3)
Produktion
Følgende output vises efter kørsel af scriptet. Tre værdier er fælles for begge lister. Disse værdier er 8, 9 og 20 og vises i indholdet af den tredje liste.
Eksempel 2: Krydsende lister via krydsningsmetoden ()
Der er ingen direkte, indbygget metode til, at listeobjektet finder ud af skæringsværdierne mellem to lister. Sættet har dog en indbygget metode, navngivet vejkryds(), for at finde ud af de fælles værdier mellem sætene. En brugerdefineret funktion, navngivet skæringslister (), er defineret i det følgende script for at finde ud af de fælles værdier mellem de to lister. En begrænsning ved dette sæt er, at det kun kan indeholde numeriske data. En listevariabel kan indeholde forskellige typer datastrenge, herunder numerisk, boolsk osv. I scriptet, liste1 og liste2 indeholder alle strengdata inklusive og tekst. Scriptet udskriver alle almindelige streng- og numeriske værdier imellem liste1 og liste2.
#!/ usr / bin / env python3# Definer funktionen til at returnere skæringspunktet mellem to lister
def intersectLists (liste1, liste2):
retur sæt (liste1).kryds (liste2)
# Definer liste1
list1 = ['Hej', '7', '8', '10', '2']
# Definer liste2
list2 = ['8', '34', 'Hej', '2', '21', '1', 10]
"Ring til den brugerdefinerede funktion for at gemme
krydsresultatet for liste1 og liste2
i liste3 "
list3 = intersectLists (liste1, liste2)
# Udskriv liste1
print ("Værdierne for liste1: \ n", liste1)
# Udskriv liste2
print ("Værdierne for liste2: \ n", liste2)
# Udskriv liste3
print ("Værdierne for liste3 efter skæring af liste1 og liste2: \ n", liste3)
Produktion
Følgende output vises efter kørsel af scriptet. Her er fælles værdier mellem de to lister '2', '8' og 'Hej.''
Eksempel 3: Krydsning af lister via loop-metoden
De to foregående eksempler viser listekryds ved hjælp af indbyggede funktioner. Følgende eksempel viser listekrydsning uden nogen indbygget funktion. Dette kan opnås ved hjælp af sløjfen. To lister med tekstdata er erklæret i scriptet. Det til loop bruges her til at finde ud af de almindelige tekstværdier mellem liste1 og liste2, og der er gemt i variablen, liste3. Dernæst udskrives værdierne for disse tre listevariabler.
#!/ usr / bin / env python3# Definer liste1
list1 = ['Farhan', 'Abir', 'Akash', 'Meena', 'Mazher']
# Definer liste2
list2 = ['Meena', 'Moyna', 'Nobel', 'Naher', 'Abir', 'Farheen']
# Find krydset ved hjælp af for loop, og gem resultatet i liste3
liste3 = [værdi for værdi i liste1 hvis værdi i liste2]
# Udskriv liste1
print ("Værdierne for liste1: \ n", liste1)
# Udskriv liste2
print ("Værdierne for liste2: \ n", liste2)
# Udskriv liste 3
print ("Værdierne for liste3 efter skæring af liste1 og liste2: \ n", liste3)
Produktion
Følgende output vises efter kørsel af scriptet. Her er de fælles tekstværdier for de to lister 'Abir' og 'Meena.''
Eksempel 4: Krydsning af enkle og indlejrede lister via metoden filter ()
Følgende eksempel viser skæringspunktet mellem en simpel liste og en indlejret liste. Det filter() metode og lambda funktion bruges i scriptet til at gennemføre krydset mellem liste1 og liste2. Når en liste indeholder en eller flere lister som listeelementer, kaldes listen en indlejret liste. Her, liste1 er en simpel liste, og liste2 er en indlejret liste, mens liste3 indeholder skæringsværdierne for liste1 og liste2.
#!/ usr / bin / env python3# Definer en simpel liste
liste1 = [22, 8, 45, 11, 34, 9, 20, 7]
# Definer en indlejret liste
liste2 = [[12, 9, 20], [78, 11, 53, 8], [2, 30, 31, 45]]
# Opret liste3 ved at krydse liste1 og liste2 ved hjælp af filter ()
list3 = [liste (filter (lambda n: n i liste1, liste)) til liste i liste2]
# Udskriv liste1
print ("Værdierne for liste1: \ n", liste1)
# Udskriv liste2
print ("Værdierne for liste2: \ n", liste2)
# Udskriv liste3
print ("Værdierne for liste3 efter skæring af liste1 og liste2: \ n", liste3)
Produktion
Følgende output vises efter kørsel af scriptet. List2-variablen indeholder tre andre lister som listeelementer. Så resultatet viser krydset mellem disse tre underlister i liste2 med liste1.
Konklusion
Listekrydsning er en nyttig måde at finde de fælles værdier mellem lister, der indeholder et stort antal listeelementer. Metoder til at udføre listekrydsning med og uden indbyggede funktioner vises i denne vejledning. Efter at have læst denne artikel skal konceptet med listekrydset være klart, og du skal kunne anvende listekryds i dit script ved at følge den måde, der vises i denne vejledning.