Susikirtimų sąrašas „Python“

List Intersection Python



„Python“ yra daug objektų kintamųjų, kurie saugo įvairius duomenų tipus. The sąrašą yra vienas iš šių kintamųjų ir gali saugoti skirtingų tipų duomenis skirtingiems poreikiams. Kartais programavimo tikslais iš kelių sąrašų turime rasti bendrų, neįprastų arba bendrų ar neįprastų duomenų elementų. „Python“ yra keletas integruotų funkcijų ir operatorių, galinčių atlikti tokio tipo užduotis Python rinkiniams. Bendrų duomenų paieška iš kelių sąrašų vadinama sąrašų sankirta, tačiau nėra operatoriaus ar integruotos funkcijos, skirtos sąrašams, pvz., Rinkiniams, rasti bendrus duomenų elementus iš kelių sąrašų. Ši pamoka parodys, kaip susikerti sąrašus „Python“.

Sankryža

Prieš pradedant šią pamoką, bus paaiškinta sankirtos sąvoka. Žemiau du pavyzdžiai:







Sąrašas1= [4, 7, 2. 3, 9, 6, vienuolika]
Sąrašas2= [6, 5, 1, dvidešimt, 9, 7, 4, 3]

Pritaikius sankryžą, jei rezultatas saugomas kitame sąraše, galbūt pavadintame „List3“, jame bus šie duomenys.



Sąrašas3= [4, 6, 7, 9]

Sąrašo 3 grafinis vaizdas pateiktas žemiau:







1 pavyzdys: susikertantys sąrašai naudojant set () metodą

Šis pavyzdys parodo, kaip galite susikerti du sąrašus naudodami rinkinys () metodas ir & operatorius. Čia pateikiami du sąrašai, pavadinti sąrašas1 ir sąrašas2. Abiejuose šiuose sąrašuose yra skaitinės vertės. Trečiasis sąrašas sudaromas konvertuojant sąrašą1 ir 2 sąrašą į rinkinį per rinkinį () metodas ir sankryžos taikymas naudojant & operatorius. Toliau spausdinamos trijų sąrašų vertės.

#!/usr/bin/env python3
# Apibrėžkite sąrašą1
sąrašas1= [22, 8, Keturi, penki, vienuolika, 3. 4, 9, dvidešimt, 7]
# Apibrėžkite sąrašą2
sąrašas2= [12, 9, dvidešimt, 78, 53, 8, 2, 30,31]
# Sukurkite sąrašą3 susikertant sąrašus1 ir sąrašus2
sąrašas3= sąrašą(nustatyti(sąrašas1)&nustatyti(sąrašas2))
# Spausdinti sąrašą1
spausdinti(„1 sąrašo vertės: n',sąrašas1)
# Spausdinti sąrašą2
spausdinti(„Sąrašo 2 vertės: n',sąrašas2)
# Spausdinti sąrašą3
spausdinti(„Sąrašo 3 reikšmės susikertant 1 ir 2 sąrašams: n',sąrašas3)

Išvestis



Paleidus scenarijų pasirodys ši išvestis. Trys vertės yra bendros abiems sąrašams. Šios reikšmės yra 8, 9 ir 20 ir yra parodytos trečiojo sąrašo turinyje.

2 pavyzdys: susikertantys sąrašai naudojant susikirtimo () metodą

Sąrašo objektui nėra tiesioginio, integruoto metodo, leidžiančio sužinoti dviejų sąrašų sankirtos reikšmes. Tačiau rinkinys turi integruotą metodą, pavadintą sankryža () , išsiaiškinti bendras aibių vertybes. Pasirinktinė funkcija, pavadinta intersectionLists () , yra apibrėžtas šiame scenarijuje, kad sužinotumėte bendras abiejų sąrašų vertes. Vienas šio rinkinio apribojimas yra tas, kad jame gali būti tik skaitiniai duomenys. Sąrašo kintamajame gali būti įvairių tipų duomenų eilutės, įskaitant skaitinę, loginę ir tt. Scenarijuje sąrašas1 ir sąrašas2 yra visi eilutės duomenys, įskaitant ir tekstą. Scenarijus išspausdins visas įprastas eilutes ir skaitines reikšmes sąrašas1 ir sąrašas2 .

#!/usr/bin/env python3

# Apibrėžkite funkciją, kad grąžintumėte dviejų sąrašų sankirtą
defintersectLists(sąrašas1,sąrašas2):
grįžti nustatyti(sąrašas1).sankryža(sąrašas2)

# Apibrėžkite sąrašą1
sąrašas1= ['Sveiki',„7“,„8“,„10“,„2“]
# Apibrėžkite sąrašą2
sąrašas2= [„8“,„3. 4“,'Sveiki',„2“,'dvidešimt vienas',„1“,10]
'' 'Paskambinkite pasirinktinei funkcijai išsaugoti
sąrašo1 ir sąrašo2 sankirtos rezultatas
į sąrašą3 '

sąrašas3=intersectLists(sąrašas1,sąrašas2)
# Spausdinti sąrašą1
spausdinti(„1 sąrašo vertės: n',sąrašas1)
# Spausdinti sąrašą2
spausdinti(„Sąrašo 2 vertės: n',sąrašas2)
# Spausdinti sąrašą3
spausdinti(„Sąrašo 3 reikšmės susikertant 1 ir 2 sąrašams: n',sąrašas3)

Išvestis

Paleidus scenarijų pasirodys ši išvestis. Čia bendros dviejų sąrašų vertės yra „2“, „8“ ir „Sveiki“.

3 pavyzdys: susikertantys sąrašai naudojant kilpos metodą

Ankstesni du pavyzdžiai rodo sąrašo sankirtą naudojant įmontuotas funkcijas. Šis pavyzdys rodo sąrašo sankirtą be jokios integruotos funkcijos. Tai galima pasiekti naudojant kilpą. Scenarijuje deklaruojami du teksto duomenų sąrašai. The dėl čia naudojama kilpa, norint sužinoti bendras teksto reikšmes sąrašas1 ir sąrašas2, ir kurie yra saugomi kintamajame, sąrašas3 . Toliau spausdinamos šių trijų sąrašo kintamųjų vertės.

#!/usr/bin/env python3

# Apibrėžkite sąrašą1
sąrašas1= [„Farhan“,„Abiras“,„Akash“,„Meena“,„Mazher“]
# Apibrėžkite sąrašą2
sąrašas2= [„Meena“,„Moyna“,'Nobelis',„Arčiau“,„Abiras“,„Farheen“]
# Raskite sankryžą naudodami ciklą ir išsaugokite rezultatą sąraše3
sąrašas3= [vertėsdėlvertėsįsąrašas1jeivertėsįsąrašas2]

# Spausdinti sąrašą1
spausdinti(„1 sąrašo vertės: n',sąrašas1)
# Spausdinti sąrašą2
spausdinti(„Sąrašo 2 vertės: n',sąrašas2)
# Spausdinti sąrašą3
spausdinti(„Sąrašo 3 reikšmės susikertant 1 ir 2 sąrašams: n',sąrašas3)

Išvestis

Paleidus scenarijų pasirodys ši išvestis. Čia yra bendros abiejų sąrašų teksto vertės „Abiras“ ir „Meena“.

4 pavyzdys: paprastų ir įdėtų sąrašų susikirtimas naudojant filtro () metodą

Šiame pavyzdyje parodyta paprasto sąrašo ir įdėto sąrašo sankirta. The filtras() metodas ir lambda funkcija naudojama scenarijuje, kad būtų galima atlikti susikirtimą tarp sąrašo1 ir sąrašo2. Kai sąraše yra vienas ar daugiau sąrašų kaip sąrašo elementai, sąrašas vadinamas įterptu sąrašu. Čia, sąrašas1 yra paprastas sąrašas ir sąrašas2 yra įdėtas sąrašas, tuo tarpu sąrašas3 yra sankirtos reikšmės sąrašas1 ir sąrašas2 .

#!/usr/bin/env python3

# Apibrėžkite paprastą sąrašą
sąrašas1= [22, 8, Keturi, penki, vienuolika, 3. 4, 9, dvidešimt, 7]
# Apibrėžkite įdėtą sąrašą
sąrašas2= [[12, 9, dvidešimt], [78, vienuolika, 53, 8], [2, 30, 31, Keturi, penki]]
# Sukurkite sąrašą3, susikirtę sąrašą1 ir sąrašą2 naudodami filtrą ()
sąrašas3= [sąrašą(filtras(lambdan: nįsąrašas1,šleifas)) dėlšleifasįsąrašas2]

# Spausdinti sąrašą1
spausdinti(„1 sąrašo vertės: n',sąrašas1)
# Spausdinti sąrašą2
spausdinti(„Sąrašo 2 vertės: n',sąrašas2)
# Spausdinti sąrašą3
spausdinti(„Sąrašo 3 reikšmės susikertant 1 ir 2 sąrašams: n',sąrašas3)

Išvestis

Paleidus scenarijų pasirodys ši išvestis. Kintamajame list2 yra dar trys sąrašai kaip sąrašo elementai. Taigi, rezultatas rodo šių trijų sąrašo 2 antrinių sąrašų sankirtą su sąrašu1.

Išvada

Sąrašo susikirtimas yra naudingas būdas rasti bendras sąrašų, kuriuose yra daug sąrašo elementų, vertes. Sąrašo sankirtos su integruotomis funkcijomis ir be jų metodai parodyti šioje pamokoje. Perskaičius šį straipsnį, sąrašo sankirtos sąvoka turėtų būti aiški, ir jūs turėtumėte galėti savo sąraše pritaikyti sąrašo sankirtą bet kokiu šioje pamokoje nurodytu būdu.