Python

Hvordan dele strenger i Python

Hvordan dele strenger i Python
Denne artikkelen vil forklare hvordan du kan dele strenger i python ved hjelp av "split ()" og "partition ()" -metoder. Disse metodene er spesielt nyttige hvis du vil konvertere en setning eller en gruppe ord til parsons og iterable Python-typer. Alle kodeeksempler i denne veiledningen er testet med Python versjon 3.8.6.

Splittmetode

Metoden “split ()” kan brukes til å dele ord ved hjelp av en brukerdefinert skilletegn. Den returnerer en liste over splittede ord uten å inkludere skilletegn. Hvis ingen separator er spesifisert av brukeren, brukes mellomrom (en eller flere) som en enkelt separator.

For eksempel vil koden nedenfor returnere “['Linux', 'Hint']" som utdata:

text = "Linux Hint"
tekst.dele()

Koden nedenfor returnerer “['LinuxHint', 'com']" som utgang når ".”Brukes som separator:

text = "LinuxHint.com "
tekst.dele(".”)

Separatoren trenger ikke å være et eneste tegn. Delingsmetoden tar to argumenter:

Begge disse argumentene er valgfrie. Som nevnt ovenfor, hvis "sep" -argumentet ikke er spesifisert, brukes mellomrom som skilletegn for splitting. Argumentet “maxsplit” har en standardverdi på “-1” og deler alle forekomster som standard. Tenk på koden nedenfor:

text = "LinuxHint.co.oss"
tekst.dele(".”)

Den vil returnere “['LinuxHint', 'co', 'us']" som utdata. Hvis du vil slutte å splitte ved den første forekomsten av skilletegnet, angir du "1" som "maxsplit" -argumentet.

text = "LinuxHint.co.oss"
tekst.dele(".", 1)

Koden ovenfor vil returnere “['LinuxHint', 'co.oss '] ”som utgang. Bare spesifiser antall forekomster der du vil at delingsprosessen skal stoppe som det andre argumentet.

Merk at hvis det er påfølgende separatorer, vil en tom streng returneres for de gjenværende separatorene etter den første splittelsen (når “maxsplit” -argumentet ikke brukes):

text = "LinuxHint ... com"
tekst.dele(".")

Koden ovenfor vil returnere “['LinuxHint',”, 'com'] ”som utdata. Hvis du vil fjerne tomme strenger fra den resulterende listen, kan du bruke følgende listeforståelsesuttalelse:

text = "LinuxHint ... com"
resultat = tekst.dele(".")
resultat = [vare for vare i resultat hvis vare != ""]
skriv ut (resultat)

Du får “['LinuxHint', 'com']" som utdata etter å ha kjørt ovennevnte kodeeksempel.

Merk at "split ()" -metoden beveger seg fra venstre til høyre for å dele strengene i ord. Hvis du vil dele streng fra høyre til venstre retning, bruk "rsplit ()" i stedet. Dens syntaks, bruk og argumenter er nøyaktig det samme som “split ()” -metoden.

Hvis det ikke finnes noen skilletegn i strengen mens du bruker “split ()” eller “rsplit ()” -metoder, returneres den originale strengen som det eneste listeelementet.

Partisjonsmetode

Metoden "partition ()" kan brukes til å dele strenger, og den fungerer identisk med "split ()" -metoden med noen forskjeller. Den mest bemerkelsesverdige forskjellen er at den beholder skillet og inkluderer den som et element i den resulterende tupelen som inneholder splittede ord. Dette er spesielt nyttig hvis du vil dele strengen i et iterabelt objekt (i dette tilfellet dobbel) uten å fjerne originale tegn. Tenk på koden nedenfor:

text = "LinuxHint.com "
resultat = tekst.skillevegg(".")
skriv ut (resultat)

Ovenstående kodeeksempel returnerer “('LinuxHint', '.',' com ') ”som utdata. Hvis du vil at resultatet skal være av listetype, kan du bruke følgende kodeeksempel i stedet:

text = "LinuxHint.com "
resultat = liste (tekst.skillevegg("."))
skriv ut (resultat)

Du bør få “['LinuxHint', '.',' com '] ”som utdata etter å ha kjørt ovennevnte kodeeksempel.

Metoden "partisjon ()" tar bare ett argument kalt "sep". Brukere kan spesifisere en separator av hvilken som helst lengde. I motsetning til "split ()" -metoden er dette argumentet obligatorisk, så du kan ikke utelate skilletegn. Du kan imidlertid angi mellomrom som skilletegn.

Merk at partisjonsmetoden stopper ved den første forekomsten av separatoren. Så hvis strengen din inneholder flere separatorer, vil "partisjon ()" -metoden ignorere alle andre forekomster. Her er et eksempel som illustrerer dette:

text = "LinuxHint.co.oss"
resultat = liste (tekst.skillevegg("."))
skriv ut (resultat)

Kodeprøven vil produsere “['LinuxHint', '.',' co.oss '] ”som utgang. Hvis du vil dele i alle tilfeller av skilletegn og også inkludere skilletegn i den endelige listen, kan det hende du må bruke et "Regular Expression" eller "RegEx" mønster. For eksemplet nevnt ovenfor kan du bruke et RegEx-mønster på følgende måte:

importer re
text = "LinuxHint.co.oss"
resultat = re.dele("(\.) ", tekst)
skriv ut (resultat)

Du får “['LinuxHint', '.',' co ','.',' oss '] ”som utgang etter å ha utført ovennevnte kodeeksempel. Punkttegnet er unnslapp i RegEx-uttalelsen nevnt ovenfor. Vær oppmerksom på at mens eksemplet ovenfor fungerer med et enkelt prikktegn, fungerer det kanskje ikke med komplekse skilletegn og komplekse strenger. Du må kanskje definere ditt eget RegEx-mønster, avhengig av brukssaken. Eksemplet er nettopp nevnt her for å gi deg en ide om prosessen med å beholde skilletegn i den endelige listen ved hjelp av RegEx-setninger.

Metoden "partisjon ()" kan noen ganger etterlate tomme strenger, spesielt når skilletegn ikke finnes i strengen som skal deles. I slike tilfeller kan du bruke listeforståelsesuttalelser for å fjerne tomme strenger, som forklart i delen "split ()" over.

text = "LinuxHint"
resultat = liste (tekst.skillevegg("."))
resultat = [vare for vare i resultat hvis vare != ""]
skriv ut (resultat)

Etter å ha kjørt ovennevnte kode, bør du få “['LinuxHint']” som utdata.

Konklusjon

For enkle og greie splittelser kan du bruke “split ()” og “partition ()” metoder for å få iterable typer. For komplekse strenger og separatorer, må du bruke RegEx-setninger.

Hvordan laste ned og spille Sid Meier's Civilization VI på Linux
Introduksjon til spillet Civilization 6 er et moderne syn på det klassiske konseptet som ble introdusert i serien av Age of Empires-spillene. Ideen va...
Hvordan installere og spille Doom på Linux
Introduksjon til Doom Doom-serien stammer fra 90-tallet etter utgivelsen av den originale Doom. Det ble en øyeblikkelig suksess, og fra den tiden og u...
Vulkan for Linux-brukere
Med hver nye generasjon grafikkort ser vi spillutviklere skyve grensene for grafisk troskap og komme et skritt nærmere fotorealisme. Men til tross for...