Python

Stringide jagamine Pythonis

Stringide jagamine Pythonis
Selles artiklis selgitatakse, kuidas stringe poolitada pythonis meetodite “split ()” ja “partition ()” abil. Need meetodid on eriti kasulikud, kui soovite lause või sõnarühma teisendada parseldatavateks ja korduvateks Pythoni tüüpideks. Kõiki selle juhendi koodinäiteid testitakse Pythoni versiooniga 3.8.6.

Split meetod

Meetodit “split ()” saab kasutada sõnade jagamiseks kasutaja määratud eraldaja abil. See tagastab jagatud sõnade loendi ilma eraldaja lisamata. Kui kasutaja pole eraldajat määranud, kasutatakse tühimikku (ühte või mitut) ühe eraldajana.

Näiteks tagastab allolev kood väljundina “[” Linux ”,“ Vihje ”]:

text = "Linuxi vihje"
teksti.jagama ()

Allolev kood tagastab väljundina „['LinuxHint', 'com']", kui.”Kasutatakse eraldajana:

text = "LinuxHint.com "
teksti.split (“.”)

Eraldaja ei pea olema üks tähemärk. Jagamismeetodil on kaks argumenti:

Mõlemad argumendid on valikulised. Nagu eelpool mainitud, kasutatakse jaotise eraldajana tühikut tühiku tühjendamise korral juhul, kui argumenti sep pole täpsustatud. Argumendi „maxsplit” vaikeväärtus on „-1” ja see jagab vaikimisi kõik esinemised. Mõelge allolevale koodile:

text = "LinuxHint.kaas.meie "
teksti.split (“.”)

See tagastab väljundina „['LinuxHint', 'co', 'us']". Kui soovite jaoturi eraldamise esimesel korral lõpetada, määrake argumendina „maxsplit” „1”.

text = "LinuxHint.kaas.meie "
teksti.split (“.”, 1)

Ülaltoodud kood tagastab "['LinuxHint', 'co.us '] "väljundina. Lihtsalt määrake teise argumendina nende esinemiste arv, kus soovite poolitusprotsessi peatada.

Pange tähele, et kui järjestikuseid eraldajaid on, tagastatakse ülejäänud eraldajate jaoks pärast esimest jagamist tühi string (kui argumenti "maxsplit" ei kasutata):

text = "LinuxHint ... com"
teksti.split (".")

Ülaltoodud kood tagastab väljundina “[” LinuxHint ”,” com ”]. Kui soovite tühjendada stringid saadud loendist, võite kasutada järgmist loendi mõistmise lauset:

text = "LinuxHint ... com"
tulemus = tekst.split (".")
tulemus = [üksus üksuse kohta tulemuses if üksus != ""]
print (tulemus)

Pärast ülaltoodud koodinäidise käivitamist saate väljundina “[” LinuxHint ”,“ com ”].

Pange tähele, et stringide sõnadeks jagamiseks liigub meetod „split ()” vasakult paremale. Kui soovite stringi paremalt vasakule jagada, kasutage selle asemel rsplit (). Selle süntaks, kasutus ja argumendid on täpselt samad mis meetodil “split ()”.

Kui stringidest ei leita eraldajaid meetodite „split ()” või „rsplit ()” kasutamisel, tagastatakse ainus loendielement algne string.

Jaotamismeetod

"Partition ()" meetodit saab kasutada stringide jagamiseks ja see töötab mõningate erinevustega identselt meetodiga "split ()". Kõige tähelepanuväärsem erinevus on see, et see hoiab eraldajat ja lisab selle lahutatud sõnu sisaldavasse lahtrisse. See on eriti kasulik, kui soovite stringi jagada itereeritavaks objektiks (antud juhul dupleksiks), eemaldamata algseid märke. Mõelge allolevale koodile:

text = "LinuxHint.com "
tulemus = tekst.partitsioon (".")
print (tulemus)

Ülaltoodud koodinäide tagastab „('LinuxHint', '.väljundina ',' com ') ”. Kui soovite, et tulemus oleks loenditüüp, kasutage selle asemel järgmist koodinäidet:

text = "LinuxHint.com "
tulemus = loend (tekst.partitsioon ("."))
print (tulemus)

Peaksite hankima “['LinuxHint', '.',' com '] ”väljundina pärast ülaltoodud koodinäidise käivitamist.

"Partition ()" meetodil on ainult üks argument nimega "sep". Kasutajad saavad määrata mis tahes pikkusega eraldaja. Erinevalt meetodist “split ()” on see argument kohustuslik, nii et te ei saa eraldajat vahele jätta. Eraldajana saate siiski määrata tühimärgi.

Pange tähele, et sektsioonimeetod peatub eraldaja esmakordsel esinemisel. Nii et kui teie string sisaldab mitut eraldajat, ignoreerib meetod “partition ()” kõiki muid esinemisi. Siin on seda illustreeriv näide:

text = "LinuxHint.kaas.meie "
tulemus = loend (tekst.partitsioon ("."))
print (tulemus)

Koodinäidis toodab „['LinuxHint', '.',' kaas.us '] "väljundina. Kui soovite eraldaja kõikidel kordadel jagada ja lisada eraldaja ka lõppnimekirja, peate võib-olla kasutama mustrit “Regulaaravaldis” või “RegEx”. Eespool nimetatud näite puhul saate RegExi mustrit kasutada järgmiselt:

impordi re
text = "LinuxHint.kaas.meie "
tulemus = re.split ("(\.) ", tekst)
print (tulemus)

Saate "['LinuxHint', '.',' co ','.'', 'us'] "väljundina pärast ülaltoodud koodinäidise käivitamist. Punkti märk on ülalnimetatud RegExi avalduses põgenenud. Pange tähele, et kuigi ülaltoodud näide töötab ühe punktmärgiga, ei pruugi see töötada keerukate eraldajate ja keeruliste stringidega. Võimalik, et peate määrama oma RegExi mustri, sõltuvalt teie kasutusjuhtumist. Siin on just toodud näide, et anda teile aimu eraldaja lõplikus loendis hoidmise protsessist RegExi lausete abil.

"Partition ()" meetod võib mõnikord jätta tühjad stringid, eriti kui eraldajat ei leita jagatavast stringist. Sellistel juhtudel saate tühjade stringide eemaldamiseks kasutada loendi mõistmise avaldusi, nagu on selgitatud ülaltoodud jaotises „split ()”.

text = "LinuxHint"
tulemus = loend (tekst.partitsioon ("."))
tulemus = [üksus üksuse kohta tulemuses if üksus != ""]
print (tulemus)

Pärast ülaltoodud koodi käivitamist peaksite väljundiks saama "['LinuxHint']".

Järeldus

Lihtsate ja arusaadavate jagamiste jaoks saate korduvate tüüpide saamiseks kasutada meetodeid „split ()“ ja „partition ()“. Komplekssete stringide ja eraldajate jaoks peate kasutama RegEx-lauseid.

Parimad mängud, mida saab mängida käte jälgimisega
Oculus Quest tutvustas hiljuti suurepärast ideed käsitsi jälgimisest ilma kontrolleriteta. Üha suurema hulga mängude ja tegevustega, mis toetavad kas ...
Kuidas kuvada OSD ülekatet täisekraanil Linuxi rakendustes ja mängudes
Täisekraaniga mängude mängimine või rakenduste kasutamine häireteta täisekraanirežiimis võib teid paneelil või tegumiribal kuvatavast asjakohasest süs...
Viis parimat mängu püüdmise kaarti
Me kõik oleme YouTube'is voogesituse mänge näinud ja armastanud. PewDiePie, Jakesepticye ja Markiplier on vaid mõned tipptasemel mängijatest, kes on t...