Python

Merkkijonojen jakaminen Pythonissa

Merkkijonojen jakaminen Pythonissa
Tässä artikkelissa selitetään, kuinka merkkijonot voidaan jakaa pythonissa käyttämällä split () ja partition () menetelmiä. Nämä menetelmät ovat erityisen hyödyllisiä, jos haluat muuntaa lauseen tai sanaryhmän jäsennettäviksi ja iteroitaviksi Python-tyypeiksi. Kaikki tämän oppaan koodinäytteet testataan Python-versiolla 3.8.6.

Jaettu menetelmä

"Split ()" -menetelmää voidaan käyttää sanojen jakamiseen käyttäjän määrittelemällä erottimella. Se palauttaa jaettujen sanojen luettelon ilman erottinta. Jos käyttäjä ei ole määrittänyt erotinta, tyhjänä tilaa (yhtä tai useampaa) käytetään yhtenä erottimena.

Esimerkiksi alla oleva koodi palauttaa "['Linux', 'Vihje'] lähdön:

text = "Linux-vihje"
teksti.jakaa()

Alla oleva koodi palauttaa "['LinuxHint', 'com']", kun ".”Käytetään erottimena:

text = "LinuxHint.com "
teksti.jakaa(".”)

Erottimen ei tarvitse olla yksi merkki. Jakomenetelmässä on kaksi argumenttia:

Molemmat argumentit ovat valinnaisia. Kuten yllä mainittiin, jos “sep” -argumenttia ei ole määritelty, välilyöntiä käytetään jakamiseen erotinmerkkinä. "Maxsplit" -argumentin oletusarvo on "-1", ja se jakaa oletusarvoisesti kaikki esiintymät. Harkitse alla olevaa koodia:

text = "LinuxHint.yhteistyössä.meille"
teksti.jakaa(".”)

Se palauttaa "['LinuxHint', 'co', 'us']" tuotoksena. Jos haluat lopettaa jakamisen erotimen ensimmäisellä esiintymiskerralla, määritä "maxsplit" -argumentiksi "1".

text = "LinuxHint.yhteistyössä.meille"
teksti.jakaa(".”, 1)

Yllä oleva koodi palauttaa "['LinuxHint', 'co.us '] "tuotoksena. Määritä vain niiden tapahtumien lukumäärä, joissa haluat jakoprosessin pysähtyvän toisena argumenttina.

Huomaa, että jos on olemassa peräkkäisiä erottimia, tyhjä merkkijono palautetaan jäljellä oleville erottimille ensimmäisen jaon jälkeen (kun argumenttia "maxsplit" ei käytetä):

text = "LinuxHint… fi"
teksti.jakaa(".")

Yllä oleva koodi palauttaa ”[” LinuxHint ”,” com ”] lähdön. Jos haluat poistaa tyhjät merkkijonot tuloksena olevasta luettelosta, voit käyttää seuraavaa luettelon ymmärtämislauseketta:

text = "LinuxHint… fi"
tulos = teksti.jakaa(".")
tulos = [kohde kohteelle tuloksessa, jos kohde != ""]
tulosta (tulos)

Saat "['LinuxHint', 'com']" lähdöksi yllä mainitun koodinäytteen suorittamisen jälkeen.

Huomaa, että "split ()" -menetelmä siirtyy vasemmalta oikealle jakamaan merkkijonot sanoiksi. Jos haluat jakaa merkkijonon oikealta vasemmalle, käytä sen sijaan ”rsplit ()”. Sen syntakse, käyttö ja argumentit ovat täsmälleen samat kuin "split ()" - menetelmä.

Jos merkkijonosta ei löydy erotinta käytettäessä ”split ()” tai “rsplit ()” -menetelmiä, alkuperäinen merkkijono palautetaan ainoana luetteloelementtinä.

Jakamistapa

"Partition ()" -menetelmää voidaan käyttää merkkijonojen jakamiseen ja se toimii identtisesti "split ()" -menetelmän kanssa eräin eroin. Merkittävin ero on, että se säilyttää erotimen ja sisällyttää sen erään tuloksena olevaan sekoitettuun sanaan, joka sisältää jaettuja sanoja. Tämä on erityisen hyödyllistä, jos haluat jakaa merkkijonon iteroitavaksi objektiksi (tässä tapauksessa kaksinkertainen) poistamatta alkuperäisiä merkkejä. Harkitse alla olevaa koodia:

text = "LinuxHint.com "
tulos = teksti.osio (".")
tulosta (tulos)

Yllä oleva koodinäyte palauttaa “('LinuxHint', '.',' com ') ”tuotoksena. Jos haluat, että tulos on luettelotyyppi, käytä seuraavaa koodinäytettä:

text = "LinuxHint.com "
tulos = luettelo (teksti.osio ("."))
tulosta (tulos)

Sinun pitäisi saada "['LinuxHint', '.',' com '] ”tuotoksena yllä olevan koodinäytteen suorittamisen jälkeen.

"Partition ()" -menetelmässä on vain yksi argumentti nimeltä "sep". Käyttäjät voivat määrittää minkä tahansa pituisen erottimen. Toisin kuin split () -menetelmä, tämä argumentti on pakollinen, joten erotinta ei voi jättää väliin. Voit kuitenkin määrittää välilyönnin erottimeksi.

Huomaa, että osiointimenetelmä pysähtyy erotimen ensimmäisellä esiintymiskerralla. Joten jos merkkijonosi sisältää useita erottimia, ”partition ()” -menetelmä ohittaa kaikki muut esiintymät. Tässä on esimerkki tästä:

text = "LinuxHint.yhteistyössä.meille"
tulos = luettelo (teksti.osio ("."))
tulosta (tulos)

Koodinäyte tuottaa "['LinuxHint', '.',' co.us '] "tuotoksena. Jos haluat jakaa erottimen kaikissa esiintymissä ja sisällyttää erottimen myös lopulliseen luetteloon, saatat joutua käyttämään "Regular Expression" - tai "RegEx" -mallia. Edellä mainitussa esimerkissä voit käyttää RegEx-mallia seuraavasti:

tuoda uudelleen
text = "LinuxHint.yhteistyössä.meille"
tulos = re.jakaa("(\.) ", teksti)
tulosta (tulos)

Saat "['LinuxHint', '.',' co ','.',' us '] "tuotoksena yllä olevan koodinäytteen suorittamisen jälkeen. Pistemerkki on vältetty yllä mainitussa RegEx-lauseessa. Huomaa, että vaikka yllä oleva esimerkki toimii yhden pistemerkin kanssa, se ei välttämättä toimi monimutkaisten erotinten ja monimutkaisten merkkijonojen kanssa. Sinun on ehkä määritettävä oma RegEx-mallisi käyttötapauksesta riippuen. Esimerkki mainitaan juuri tässä, jotta saat käsityksen erottimen säilyttämisestä lopullisessa luettelossa RegEx-käskyjen avulla.

"Partition ()" -menetelmä voi joskus jättää tyhjiä merkkijonoja, varsinkin kun erotinta ei löydy jaettavasta merkkijonosta. Tällaisissa tapauksissa voit käyttää tyhjentäviä merkkijonoja luettelon ymmärtämislausekkeiden avulla, kuten yllä olevassa split () -menetelmäosassa kerrotaan.

text = "LinuxHint"
tulos = luettelo (teksti.osio ("."))
tulos = [kohde kohteelle tuloksessa, jos kohde != ""]
tulosta (tulos)

Kun olet suorittanut yllä olevan koodin, sinun pitäisi saada ”[” LinuxHint '] ”lähtöön.

Johtopäätös

Yksinkertaisissa ja suoraviivaisissa jakoissa voit saada iteroitavia tyyppejä "split ()" ja "partition ()" -menetelmillä. Monimutkaisten merkkijonojen ja erottimien osalta sinun on käytettävä RegEx-käskyjä.

Shadow of the Tomb Raider for Linux -opetusohjelma
Shadow of the Tomb Raider on kahdestoista lisäys Tomb Raider -sarjaan - toiminta-seikkailupelisarja, jonka on luonut Eidos Montreal. Kriitikot ja fani...
Kuinka parantaa FPS ää Linuxissa?
FPS tarkoittaa Kuvaa sekunnissa. FPS: n tehtävänä on mitata kehysnopeus videotoistoissa tai peliesityksissä. Yksinkertaisin sanoin sekunnissa näytettä...
Suosituimmat Oculus App Lab -pelit
Jos olet Oculus-kuulokemikrofonin omistaja, sinun täytyy olla tietoinen sivulatauksesta. Sivulataus on prosessi, jolla ei-kaupallista sisältöä asennet...