Luettelo risteyksestä Pythonissa

List Intersection Python



Pythonissa on monia objektimuuttujia erilaisten tietotyyppien tallentamiseen. The lista on yksi näistä muuttujista ja voi tallentaa erityyppisiä tietoja eri tarpeisiin. Joskus meidän on löydettävä yhteisiä, harvinaisia ​​tai sekä yleisiä että harvinaisia ​​tietokohteita useista luetteloista ohjelmointitarkoituksia varten. Python sisältää useita sisäänrakennettuja toimintoja ja operaattoreita, jotka voivat suorittaa tämän tyyppisiä tehtäviä Python-sarjoille. Yhteisten tietojen etsimistä useista luetteloista kutsutaan luettelon leikkauspisteeksi, mutta luetteloiden kaltaisille operaattoreille tai sisäänrakennetulle toiminnolle ei löydy yhteisiä tietokohteita useista luetteloista. Tämä opetusohjelma näyttää sinulle, miten leikkaat luettelot Pythonissa.

Risteys

Ennen tämän opetusohjelman aloittamista selitetään leikkauksen käsite. Alla on kaksi esimerkkiä:







Lista 1= [4, 7, 2. 3, 9, 6, yksitoista]
Lista 2= [6, 5, 1, kaksikymmentä, 9, 7, 4, 3]

Risteyksen soveltamisen jälkeen, jos tulos on tallennettu toiseen luetteloon, ehkä nimellä List3, se sisältää seuraavat tiedot.



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

Listan 3 graafinen esitys on esitetty alla:







Esimerkki 1: Listat leikkaavat set () -menetelmän kautta

Seuraava esimerkki näyttää, kuinka voit leikata kaksi luetteloa käyttämällä aseta() menetelmä ja & operaattori. Tässä ilmoitetaan kaksi luetteloa, nimeltään lista1 ja lista2. Molemmat luettelot sisältävät numeerisia arvoja. Kolmas lista luodaan muuntamalla lista1 ja lista 2 joukkoksi joukon kautta () menetelmällä ja leikkauskohdan avulla & operaattori. Seuraavaksi tulostetaan kolmen luettelon arvot.

#!/usr/bin/env python3
# Määritä luettelo 1
luettelo 1= [22, 8, Neljä viisi, yksitoista, 3. 4, 9, kaksikymmentä, 7]
# Määritä luettelo2
luettelo 2= [12, 9, kaksikymmentä, 78, 53, 8, 2, 30,31]
# Luo lista3 leikkaamalla listat1 ja listat2
luettelo 3= lista(aseta(luettelo 1)&aseta(luettelo 2))
# Tulosta luettelo 1
Tulosta('Listan 1 arvot: n'',luettelo 1)
# Tulosta luettelo 2
Tulosta('Luettelon2 arvot: n'',luettelo 2)
# Tulosta luettelo 3
Tulosta('Listan3 arvot listan1 ja listan2 leikkaamisen jälkeen: n'',luettelo 3)

Lähtö



Seuraava tulos tulee näkyviin komentosarjan suorittamisen jälkeen. Kolme arvoa on yhteisiä molemmille listoille. Nämä arvot ovat 8, 9 ja 20, ja ne näkyvät kolmannen luettelon sisällössä.

Esimerkki 2: Leikkausluettelot leikkausmenetelmän () kautta

Listaobjektille ei ole suoraa sisäänrakennettua menetelmää kahden listan leikkausarvojen selvittämiseksi. Sarjassa on kuitenkin sisäänrakennettu menetelmä, nimeltään Risteys() , selvittää joukkojen väliset yhteiset arvot. Muokattu toiminto nimeltä intersectionLists () , määritellään seuraavassa skriptissä selvittääksesi yhteiset arvot kahden luettelon välillä. Yksi tämän sarjan rajoituksista on, että se voi sisältää vain numeerista tietoa. Luettelomuuttuja voi sisältää erityyppisiä datamerkkijonoja, mukaan lukien numeeriset, boolen jne. luettelo 1 ja luettelo 2 sisältää kaikki merkkijonotiedot, mukaan lukien ja teksti. Skripti tulostaa kaikki tavalliset merkkijono- ja numeeriset arvot niiden välille luettelo 1 ja luettelo 2 .

#!/usr/bin/env python3

# Määritä funktio kahden luettelon leikkauspisteen palauttamiseksi
defintersectLists(luettelo 1,luettelo 2):
palata aseta(luettelo 1).Risteys(luettelo 2)

# Määritä luettelo 1
luettelo 1= ['Hei','7','8','10','2']
# Määritä luettelo2
luettelo 2= ['8','3. 4','Hei','2','kaksikymmentäyksi','1',10]
'' Soita mukautettu toiminto tallentaaksesi
listan1 ja listan2 leikkaustulos
listalle3 ''

luettelo 3=intersectLists(luettelo 1,luettelo 2)
# Tulosta luettelo 1
Tulosta('Listan 1 arvot: n'',luettelo 1)
# Tulosta luettelo 2
Tulosta('Luettelon2 arvot: n'',luettelo 2)
# Tulosta luettelo 3
Tulosta('Listan3 arvot listan1 ja listan2 leikkaamisen jälkeen: n'',luettelo 3)

Lähtö

Seuraava tulos tulee näkyviin komentosarjan suorittamisen jälkeen. Tässä kahden luettelon yhteiset arvot ovat '2', '8' ja 'Hei'.

Esimerkki 3: Listat leikkaavat silmukkamenetelmän avulla

Kaksi edellistä esimerkkiä esittävät luettelon leikkauskohdan sisäänrakennettujen toimintojen avulla. Seuraava esimerkki näyttää luettelon leikkauspisteen ilman sisäänrakennettua toimintoa. Tämä voidaan saavuttaa käyttämällä silmukkaa. Skriptissä ilmoitetaan kaksi tekstidataluetteloa. The varten silmukkaa käytetään tässä selvittämään yhteiset tekstiarvot luettelo 1 ja lista2, ja jotka on tallennettu muuttujaan, luettelo 3 . Seuraavaksi tulostetaan näiden kolmen luettelomuuttujan arvot.

#!/usr/bin/env python3

# Määritä luettelo 1
luettelo 1= ['Farhan','Abir','Akash','Meena','Mazher']
# Määritä luettelo2
luettelo 2= ['Meena','Moyna','Nobel','Lähempänä','Abir','Farheen']
# Etsi risteys silmukan avulla ja tallenna tulos luetteloon3
luettelo 3= [arvovartenarvosisäänluettelo 1josarvosisäänluettelo 2]

# Tulosta luettelo 1
Tulosta('Listan 1 arvot: n'',luettelo 1)
# Tulosta luettelo 2
Tulosta('Luettelon2 arvot: n'',luettelo 2)
# Tulosta luettelo 3
Tulosta('Listan3 arvot listan1 ja listan2 leikkaamisen jälkeen: n'',luettelo 3)

Lähtö

Seuraava tulos tulee näkyviin komentosarjan suorittamisen jälkeen. Tässä ovat näiden kahden luettelon yhteiset tekstiarvot 'Abir' ja 'Meena.'

Esimerkki 4: Yksinkertaisten ja sisäkkäisten luetteloiden leikkaaminen suodatin () -menetelmän kautta

Seuraava esimerkki näyttää yksinkertaisen luettelon ja sisäkkäisen luettelon leikkauspisteen. The suodattaa() menetelmä ja lambda -toimintoa käytetään komentosarjassa luettelon 1 ja listan 2 välisen leikkauksen suorittamiseen. Kun luettelo sisältää yhden tai useamman luettelon luettelokohteina, luetteloa kutsutaan sisäkkäiseksi luetteloksi. Tässä, luettelo 1 on yksinkertainen lista, ja luettelo 2 on sisäkkäinen luettelo, kun taas luettelo 3 sisältää kohteen leikkausarvot luettelo 1 ja luettelo 2 .

#!/usr/bin/env python3

# Määritä yksinkertainen luettelo
luettelo 1= [22, 8, Neljä viisi, yksitoista, 3. 4, 9, kaksikymmentä, 7]
# Määritä sisäkkäinen luettelo
luettelo 2= [[12, 9, kaksikymmentä], [78, yksitoista, 53, 8], [2, 30, 31, Neljä viisi]]
# Luo luettelo3 leikkaamalla lista1 ja lista2 suodattimen () avulla
luettelo 3= [lista(suodattaa(lambdan: nsisäänluettelo 1,liuska)) vartenliuskasisäänluettelo 2]

# Tulosta luettelo 1
Tulosta('Listan 1 arvot: n'',luettelo 1)
# Tulosta luettelo 2
Tulosta('Listan2 arvot: n'',luettelo 2)
# Tulosta luettelo 3
Tulosta('Listan3 arvot listan1 ja listan2 leikkaamisen jälkeen: n'',luettelo 3)

Lähtö

Seuraava tulos tulee näkyviin komentosarjan suorittamisen jälkeen. Muuttuja list2 sisältää kolme muuta luetteloa luettelokohteina. Tulos näyttää siis listan2 näiden kolmen alaluettelon leikkauskohdan listan1 kanssa.

Johtopäätös

Luettelon leikkaus on hyödyllinen tapa löytää yhteiset arvot luetteloiden välillä, jotka sisältävät suuren määrän luettelokohteita. Tässä opetusohjelmassa esitetään menetelmät luettelon leikkaamisen suorittamiseksi sisäänrakennetuilla toiminnoilla ja ilman niitä. Tämän artikkelin lukemisen jälkeen luettelon leikkauspisteen käsitteen pitäisi olla selkeä, ja sinun pitäisi pystyä käyttämään luettelon leikkauspistettä komentosarjassasi noudattamalla mitä tahansa tässä opetusohjelmassa esitettyä tapaa.