List Intersection v Pythonu

List Intersection Python



V Pythonu obstaja veliko spremenljivk objektov za shranjevanje različnih podatkovnih tipov. The seznam je ena od teh spremenljivk in lahko shranjuje različne vrste podatkov za različne potrebe. Včasih moramo za namene programiranja najti skupne, občasne ali tako pogoste kot neobičajne podatkovne postavke z več seznamov. Python vsebuje več vgrajenih funkcij in operaterjev, ki lahko izvajajo te vrste nalog za nabore Python. Iskanje skupnih podatkov z več seznamov se imenuje presečišče seznama, vendar za sezname, kot so nabori, ki najdejo skupne podatkovne postavke z več seznamov, ni operaterja ali vgrajene funkcije. Ta vadnica vam bo pokazala, kako preseči sezname v Pythonu.

Presečišče

Pred začetkom te vadnice bo razložen pojem presečišča. Spodaj sta kot primer navedena dva:







Seznam1= [4, 7, 2. 3, 9, 6, enajst]
Seznam2= [6, 5, 1, dvajset, 9, 7, 4, 3]

Po uporabi presečišča, če je rezultat shranjen na drugem seznamu, morda z imenom List3, bo vseboval naslednje podatke.



Seznam3= [4, 6, 7, 9]

Grafični prikaz List3 je prikazan spodaj:







Primer 1: Prekrivanje seznamov po metodi set ()

Naslednji primer prikazuje, kako lahko sekate dva seznama z uporabo set () metoda in & operater. Tu sta prijavljena dva seznama z imenom list1 in list2. Oba seznama vsebujeta številske vrednosti. Tretji seznam nastane s pretvorbo seznama1 in seznama 2 v niz prek nabora () metodo in uporabo presečišča z uporabo & operater. Nato se natisnejo vrednosti treh seznamov.

#!/usr/bin/env python3
# Določite seznam1
seznam1= [22, 8, Štiri, pet, enajst, 3. 4, 9, dvajset, 7]
# Določite seznam2
seznam2= [12, 9, dvajset, 78, 53, 8, 2, 30,31]
# Ustvarite seznam3 tako, da sežete list1 in list2
seznam3= seznam(nastavljeno(seznam1)&nastavljeno(seznam2))
# Natisni seznam1
tiskanje('Vrednosti list1: n',seznam1)
# Natisni seznam2
tiskanje('Vrednosti list2: n',seznam2)
# Natisni seznam3
tiskanje('Vrednosti seznama3 po presečišču seznama1 in seznama2: n',seznam3)

Izhod



Po zagonu skripta se prikaže naslednji izhod. Za oba seznama so skupne tri vrednosti. Te vrednosti so 8, 9 in 20 in so prikazane v vsebini tretjega seznama.

Primer 2: Prekrivanje seznamov prek metode intersection ()

Za objekt seznama ni neposredne, vgrajene metode za ugotavljanje presečnih vrednosti med dvema seznamoma. Vendar ima niz vgrajeno metodo, imenovano križišče () , da bi ugotovili skupne vrednosti med množicami. Funkcija po meri, imenovana intersectionLists () , je definirano v naslednjem skriptu, da bi ugotovili skupne vrednosti med obema seznamoma. Ena omejitev tega niza je, da lahko vsebuje le numerične podatke. Spremenljivka seznama lahko vsebuje različne vrste podatkovnih nizov, vključno s številskimi, logičnimi itd. seznam1 in seznam2 vsebujejo vse podatke o nizu, vključno z besedilom. Skript bo med njimi natisnil vse običajne nizovne in številske vrednosti seznam1 in seznam2 .

#!/usr/bin/env python3

# Določite funkcijo za vrnitev presečišča dveh seznamov
defintersectLists(seznam1,seznam2):
vrnitev nastavljeno(seznam1).križišče(seznam2)

# Določite seznam1
seznam1= ['Zdravo','7','8','10','2']
# Določite seznam2
seznam2= ['8','3. 4','Zdravo','2','enaindvajset','1',10]
'' 'Pokličite funkcijo po meri za shranjevanje
rezultat presečišča list1 in list2
na seznam3 ''

seznam3=intersectLists(seznam1,seznam2)
# Natisni seznam1
tiskanje('Vrednosti list1: n',seznam1)
# Natisni seznam2
tiskanje('Vrednosti list2: n',seznam2)
# Natisni seznam3
tiskanje('Vrednosti seznama3 po presečišču seznama1 in seznama2: n',seznam3)

Izhod

Po zagonu skripta se prikaže naslednji izhod. Tu so skupne vrednosti med tema dvema seznamoma '2', '8' in 'Hello'.

Primer 3: Prekrivanje seznamov po metodi zanke

Prejšnja dva primera prikazujeta presek seznama z vgrajenimi funkcijami. Naslednji primer prikazuje presečišče seznama brez vgrajene funkcije. To lahko dosežemo z uporabo zanke. V skriptu sta prijavljena dva seznama besedilnih podatkov. The za zanka se tukaj uporablja za odkrivanje skupnih besedilnih vrednosti med seznam1 in seznam2, in so shranjene v spremenljivki, seznam3 . Nato se natisnejo vrednosti teh treh spremenljivk seznama.

#!/usr/bin/env python3

# Določite seznam1
seznam1= ['Farhan','Abir','Akash','Meena','Mazher']
# Določite seznam2
seznam2= ['Meena','Moyna','Nobel','Bližje','Abir','Farheen']
# Poiščite presečišče z zanko for in rezultat shranite v list3
seznam3= [vrednostzavrednostvseznam1čevrednostvseznam2]

# Natisni seznam1
tiskanje('Vrednosti list1: n',seznam1)
# Natisni seznam2
tiskanje('Vrednosti list2: n',seznam2)
# Natisni seznam3
tiskanje('Vrednosti seznama3 po presečišču seznama1 in seznama2: n',seznam3)

Izhod

Po zagonu skripta se prikaže naslednji izhod. Tu so skupne besedilne vrednosti obeh seznamov 'Abir' in 'Meena.'

Primer 4: Preseči preproste in ugnezdene sezname z metodo filter ()

Naslednji primer prikazuje presečišče med preprostim seznamom in ugnezdenim seznamom. The filter () metoda in lambda funkcije se uporabljajo v skriptu za presečišče med list1 in list2. Kadar seznam vsebuje enega ali več seznamov kot elemente seznama, se seznam imenuje ugnezdeni seznam. Tukaj, seznam1 je preprost seznam in seznam2 je ugnezden seznam, medtem ko seznam3 vsebuje presečne vrednosti seznam1 in seznam2 .

#!/usr/bin/env python3

# Določite preprost seznam
seznam1= [22, 8, Štiri, pet, enajst, 3. 4, 9, dvajset, 7]
# Določite ugnezden seznam
seznam2= [[12, 9, dvajset], [78, enajst, 53, 8], [2, 30, 31, Štiri, pet]]
# Ustvarite list3 tako, da presekate list1 in list2 z uporabo filtra ()
seznam3= [seznam(filter(lambdan: nvseznam1,slist)) zaslistvseznam2]

# Natisni seznam1
tiskanje('Vrednosti list1: n',seznam1)
# Natisni seznam2
tiskanje('Vrednosti list2: n',seznam2)
# Natisni seznam3
tiskanje('Vrednosti seznama3 po presečišču seznama1 in seznama2: n',seznam3)

Izhod

Po zagonu skripta se prikaže naslednji izhod. Spremenljivka list2 vsebuje tri druge sezname kot postavke seznama. Tako rezultat prikazuje presečišče teh treh pod-seznamov seznama2 s seznamom1.

Zaključek

Presečišče seznamov je uporaben način za iskanje skupnih vrednosti med seznami, ki vsebujejo veliko število postavk seznama. Metode za izvajanje presečišča seznamov z vgrajenimi funkcijami in brez njih so prikazane v tej vadnici. Ko boste prebrali ta članek, bi moral biti koncept presečišča seznama jasen in presečišče seznama bi morali uporabiti v svojem skriptu tako, da sledite kakršnemu koli načinu, prikazanemu v tej vadnici.