Listekryds i Python

List Intersection Python



Der findes mange objektvariabler i python for at gemme en række datatyper. Det liste er en af ​​disse variabler og kan gemme forskellige typer data til forskellige behov. Nogle gange er vi nødt til at finde fælles, ualmindelige eller både almindelige og ualmindelige dataposter fra flere lister til programmeringsformål. Python indeholder flere indbyggede funktioner og operatører, der kan udføre denne type opgaver for Python-sæt. At finde fælles data fra de flere lister kaldes listeskæringspunkt, men der er ingen operator eller indbygget funktion til lister som sæt til at finde de fælles datapunkter fra flere lister. Denne vejledning viser dig, hvordan du skærer lister i Python.

Vejkryds

Inden denne vejledning påbegyndes, vil begrebet skæringspunkt blive forklaret. Nedenfor er to givet som et eksempel:







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

Efter anvendelse af krydset, hvis resultatet er gemt på en anden liste, måske navngivet List3, så vil det indeholde følgende data.



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

Den grafiske fremstilling af List3 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 liste1 og liste 2 til sættet via sættet () metode og anvendelse af skæringspunkt ved hjælp af & operatør. Derefter udskrives værdierne for de tre lister.

#!/usr/bin/env python3
# Definer liste 1
liste 1= [22, 8, Fire. Fem, elleve, 3. 4, 9, tyve, 7]
# Definer liste2
liste 2= [12, 9, tyve, 78, 53, 8, 2, 30,31]
# Opret list3 ved at krydse list1 og list2
liste 3= liste(sæt(liste 1)&sæt(liste 2))
# Udskriv liste 1
Print('Værdierne i liste 1: n',liste 1)
# Udskriv liste2
Print('Værdierne i list2: n',liste 2)
# Udskriv liste3
Print('Værdierne for list3 efter krydsende liste1 og liste2: n',liste 3)

Produktion



Følgende output vises efter at scriptet er kørt. Tre værdier er fælles for begge lister. Disse værdier er 8, 9 og 20 og vises i indholdet på den tredje liste.

Eksempel 2: Krydsende lister via skæringspunkt () -metoden

Der er ingen direkte, indbygget metode til listeobjektet til at finde ud af skæringsværdierne mellem to lister. Sættet har imidlertid en indbygget metode, navngivet vejkryds() , for at finde ud af de fælles værdier mellem sætene. En brugerdefineret funktion, navngivet intersectionLists () , er defineret i det følgende script for at finde ud af de fælles værdier mellem de to lister. En begrænsning af dette sæt er, at det kun kan indeholde numeriske data. En listevariabel kan indeholde forskellige typer datastreng, herunder numerisk, boolsk osv. I scriptet, liste 1 og liste 2 indeholder alle strengdata inklusive og tekst. Scriptet udskriver alle almindelige streng- og numeriske værdier mellem liste 1 og liste 2 .

#!/usr/bin/env python3

# Definer funktionen for at returnere skæringspunktet mellem to lister
defskærer lister(liste 1,liste 2):
Vend tilbage sæt(liste 1).vejkryds(liste 2)

# Definer liste 1
liste 1= ['Hej','7','8','10','2']
# Definer liste2
liste 2= ['8','3. 4','Hej','2','enogtyve','1',10]
'' 'Ring til den brugerdefinerede funktion for at gemme
skæringsresultatet af liste1 og liste2
i liste3 '' '

liste 3=skærer lister(liste 1,liste 2)
# Udskriv liste 1
Print('Værdierne i liste 1: n',liste 1)
# Udskriv liste2
Print('Værdierne i list2: n',liste 2)
# Udskriv liste3
Print('Værdierne for list3 efter krydsende liste1 og liste2: n',liste 3)

Produktion

Følgende output vises efter at scriptet er kørt. Her er fælles værdier mellem de to lister '2', '8' og 'Hej'.

Eksempel 3: Krydsende lister via loop -metoden

De to foregående eksempler viser listekryds ved hjælp af indbyggede funktioner. Følgende eksempel viser listekryds uden nogen indbygget funktion. Dette kan opnås ved at bruge sløjfen. To lister med tekstdata erklæres i scriptet. Det til loop bruges her til at finde ud af de fælles tekstværdier mellem liste 1 og liste2, og som er gemt i variablen, liste 3 . Derefter udskrives værdierne for disse tre listevariabler.

#!/usr/bin/env python3

# Definer liste 1
liste 1= ['Farhan','Abir','Akash','Meena','Mazher']
# Definer liste2
liste 2= ['Meena','Moyna','Nobel','Tættere','Abir','Farheen']
# Find skæringspunktet ved hjælp af for loop og gem resultatet i list3
liste 3= [værditilværdiiliste 1hvisværdiiliste 2]

# Udskriv liste 1
Print('Værdierne i liste 1: n',liste 1)
# Udskriv liste2
Print('Værdierne i list2: n',liste 2)
# Udskriv liste3
Print('Værdierne for list3 efter krydsende liste1 og liste2: n',liste 3)

Produktion

Følgende output vises efter at scriptet er kørt. Her er de fælles tekstværdier for de to lister 'Abir' og 'Meena.'

Eksempel 4: Krydsning af enkle og indlejrede lister via filter () -metoden

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 udføre skæringspunktet mellem list1 og list2. Når en liste indeholder en eller flere lister som listeelementer, kaldes listen en indlejret liste. Her, liste 1 er en simpel liste, og liste 2 er en indlejret liste, mens liste 3 indeholder skæringsværdierne for liste 1 og liste 2 .

#!/usr/bin/env python3

# Definer en simpel liste
liste 1= [22, 8, Fire. Fem, elleve, 3. 4, 9, tyve, 7]
# Definer en indlejret liste
liste 2= [[12, 9, tyve], [78, elleve, 53, 8], [2, 30, 31, Fire. Fem]]
# Opret list3 ved at krydse list1 og list2 ved hjælp af filter ()
liste 3= [liste(filter(lambdan: niliste 1,skrå)) tilskråiliste 2]

# Udskriv liste 1
Print('Værdierne i liste 1: n',liste 1)
# Udskriv liste2
Print('Værdierne i list2: n',liste 2)
# Udskriv liste3
Print('Værdierne for list3 efter krydsende liste1 og liste2: n',liste 3)

Produktion

Følgende output vises efter at scriptet er kørt. List2 -variablen indeholder tre andre lister som listeelementer. Så resultatet viser skæringspunktet mellem disse tre underlister i liste2 med liste1.

Konklusion

Listekryds er en nyttig måde at finde de fælles værdier mellem lister, der indeholder et stort antal listeelementer. Metoder til udførelse af skæringspunkt med og uden indbyggede funktioner er vist i denne vejledning. Efter at have læst denne artikel skal konceptet med listeskæringspunktet være klart, og du bør være i stand til at anvende listekryds i dit script ved at følge enhver måde, der vises i denne vejledning.