Python

Kako razdeliti nize v Pythonu

Kako razdeliti nize v Pythonu
Ta članek bo razložil, kako razdeliti nize v pythonu z uporabo metod “split ()” in “partition ()”. Te metode so še posebej uporabne, če želite stavek ali skupino besed pretvoriti v razkučljive in ponovljive vrste Python. Vsi vzorci kode v tem priročniku so preizkušeni z različico Python 3.8.6.

Metoda delitve

Metoda »split ()« se lahko uporablja za ločevanje besed z uporabniškim ločilom. Vrne seznam razdeljenih besed brez ločila. Če uporabnik ne določi ločila, se presledek (en ali več) uporabi kot en ločevalnik.

Na primer, spodnja koda bo kot izhod vrnila “['Linux', 'Hint']”:

text = "Namig za Linux"
besedilo.razdeli ()

Spodnja koda bo vrnila "['LinuxHint', 'com']" kot izhodno sporočilo, ko "."Se uporablja kot ločilo:

text = "LinuxHint.com "
besedilo.razdeljen (".")

Ločilo ne sme biti en sam znak. Metoda split ima dva argumenta:

Oba argumenta sta neobvezna. Kot je bilo omenjeno zgoraj, če argument "sep" ni določen, se presledek uporablja kot ločilo za ločevanje. Argument "maxsplit" ima privzeto vrednost "-1" in privzeto razdeli vse pojavitve. Upoštevajte spodnjo kodo:

text = "LinuxHint.co.nas "
besedilo.razdeljen (".")

Kot izhod bo vrnil “['LinuxHint', 'co', 'us']”. Če želite ustaviti delitev ob prvem pojavu ločila, kot argument »maxsplit« določite »1«.

text = "LinuxHint.co.nas "
besedilo.razdeljen (".", 1)

Zgornja koda bo vrnila "['LinuxHint', 'co.us '] "kot izhod. Samo navedite število ponovitev, pri katerih želite, da se postopek razdelitve ustavi kot drugi argument.

Upoštevajte, da če obstajajo zaporedna ločila, bo za preostala ločila po prvem razdelitvi vrnjen prazen niz (kadar argument »maxsplit« ni uporabljen):

text = "LinuxHint ... com"
besedilo.razdeli (".")

Zgornja koda bo vrnila “['LinuxHint', ',' com ']' kot izhod. Če želite s nastalega seznama odstraniti prazne nize, lahko uporabite naslednjo izjavo o razumevanju seznama:

text = "LinuxHint ... com"
rezultat = besedilo.razdeli (".")
rezultat = [element za element v rezultatu, če je element != ""]
natisni (rezultat)

Ko zaženete zgornji vzorec kode, boste kot izhod dobili "['LinuxHint', 'com']".

Upoštevajte, da se metoda »split ()« premika od leve proti desni, da razdeli nize v besede. Če želite niz razdeliti od desne proti levi, namesto tega uporabite »rsplit ()«. Njegova sintaksa, uporaba in argumenti so popolnoma enaki metodi »split ()«.

Če med metodama “split ()” ali “rsplit ()” v nizu ni najdeno ločilo, se prvotni niz vrne kot edini element seznama.

Metoda razdelitve

Metoda “partition ()” se lahko uporablja za ločevanje nizov in deluje enako kot metoda “split ()” z nekaterimi razlikami. Najbolj opazna razlika je v tem, da ohrani ločilo in ga vključi kot element v nastali nabor, ki vsebuje razdeljene besede. To je še posebej koristno, če želite niz razdeliti na predmet, ki ga je mogoče iti (v tem primeru nabor), ne da bi odstranili izvirne znake. Upoštevajte spodnjo kodo:

text = "LinuxHint.com "
rezultat = besedilo.particija (".")
natisni (rezultat)

Zgornji vzorec kode bo vrnil “('LinuxHint', '.',' com ') ”kot izhod. Če želite, da je rezultat vrste seznama, raje uporabite naslednji vzorec kode:

text = "LinuxHint.com "
rezultat = seznam (besedilo.particija ("."))
natisni (rezultat)

Morali bi dobiti "['LinuxHint', '.',' com '] ”kot izhod po zagonu zgornjega vzorca kode.

Metoda “partition ()” ima samo en argument, imenovan “sep”. Uporabniki lahko določijo ločilo katere koli dolžine. Za razliko od metode “split ()” je ta argument obvezen, zato ločila ne morete izpustiti. Vendar lahko presledek določite kot ločilo.

Upoštevajte, da se metoda particije ustavi ob prvem pojavu ločila. Če torej vaš niz vsebuje več ločil, bo metoda “partition ()” prezrla vse druge pojavitve. Tu je primer, ki to ponazarja:

text = "LinuxHint.co.nas "
rezultat = seznam (besedilo.particija ("."))
natisni (rezultat)

Vzorec kode bo ustvaril “['LinuxHint', '.',' co.us '] "kot izhod. Če želite ločiti vse pojavitve ločila in ločilo vključiti tudi na končni seznam, boste morda morali uporabiti vzorec »Regular Expression« ali »RegEx«. Za zgoraj omenjeni primer lahko vzorec RegEx uporabite na naslednji način:

uvozi ponovno
text = "LinuxHint.co.nas "
rezultat = ponovno.split ("(\.) ", besedilo)
natisni (rezultat)

Dobili boste "['LinuxHint', '.',' co ','.',' us '] ”kot izhod po izvedbi zgornjega vzorca kode. Znak pike je v zgoraj omenjeni izjavi RegEx izognjen. Upoštevajte, da čeprav zgornji primer deluje z eno piko, morda ne bo deloval z zapletenimi ločili in zapletenimi nizi. Morda boste morali določiti svoj vzorec RegEx, odvisno od primera uporabe. Primer je pravkar omenjen tukaj, da dobite nekaj predstave o postopku ohranjanja ločevalnika na končnem seznamu z uporabo stavkov RegEx.

Metoda “partition ()” lahko včasih pusti prazne nize, še posebej, če ločila v nizu ni mogoče razdeliti. V takih primerih lahko s stavki za razumevanje seznama odstranite prazne nize, kot je razloženo v zgornjem razdelku metode »split ()«.

text = "LinuxHint"
rezultat = seznam (besedilo.particija ("."))
rezultat = [element za element v rezultatu, če je element != ""]
natisni (rezultat)

Po zagonu zgornje kode bi morali kot izhod dobiti "['LinuxHint']".

Zaključek

Za enostavne in enostavne delitve lahko uporabite metode »split ()« in »partition ()«, da dobite iterabilne tipe. Za kompleksne nize in ločila boste morali uporabiti stavke RegEx.

Top 5 kartic za zajemanje iger
Vsi smo v YouTubu videli in oboževali pretakanje iger. PewDiePie, Jakesepticye in Markiplier so le nekateri izmed najboljših igralcev, ki so zaslužili...
Kako razviti igro na Linuxu
Pred desetletjem le malo uporabnikov Linuxa napoveduje, da bo njihov najljubši operacijski sistem nekoč priljubljena igralna platforma za komercialne ...
Odprtokodna vrata komercialnih igralnih sistemov
Brezplačne, odprtokodne in medplatformacijske igre, ki jih lahko uporabite za igranje starih, pa tudi nekaterih dokaj nedavnih naslovov iger. V tem čl...