Python

Sådan opdeles strenge i Python

Sådan opdeles strenge i Python
Denne artikel forklarer, hvordan man opdeler strenge i python ved hjælp af "split ()" og "partition ()" metoder. Disse metoder er især nyttige, hvis du vil konvertere en sætning eller en gruppe ord til parset og iterable Python-typer. Alle kodeeksempler i denne vejledning testes med Python version 3.8.6.

Split metode

Metoden “split ()” kan bruges til at opdele ord ved hjælp af en brugerdefineret separator. Det returnerer en liste over splittede ord uden at medtage separatoren. Hvis der ikke er angivet nogen separator af brugeren, bruges mellemrum (en eller flere) som en enkelt separator.

For eksempel returnerer koden nedenfor “['Linux', 'Hint']" som output:

text = "Linux-tip"
tekst.dele()

Koden nedenfor returnerer “['LinuxHint', 'com']” som output, når “.”Bruges som separator:

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

Separatoren behøver ikke at være et enkelt tegn. Opdelingsmetoden tager to argumenter:

Begge disse argumenter er valgfri. Som nævnt ovenfor, hvis "sep" -argumentet ikke er specificeret, bruges mellemrum som separator til opdeling. Argumentet “maxsplit” har en standardværdi på “-1”, og det opdeler alle forekomster som standard. Overvej koden nedenfor:

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

Det returnerer “['LinuxHint', 'co', 'os']" som output. Hvis du vil stoppe opdeling ved den første forekomst af separatoren, skal du angive "1" som "maxsplit" -argumentet.

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

Koden ovenfor returnerer “['LinuxHint', 'co.os '] ”som output. Angiv bare antallet af forekomster, hvor splitprocessen skal stoppes som det andet argument.

Bemærk, at hvis der er fortløbende separatorer, returneres en tom streng for de resterende separatorer efter den første split (når "maxsplit" -argumentet ikke bruges):

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

Koden ovenfor returnerer “['LinuxHint',”, 'com'] ”som output. Hvis du vil fjerne tomme strenge fra den resulterende liste, kan du bruge følgende erklæring om listeforståelse:

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

Du får "['LinuxHint', 'com']" som output efter at have kørt ovenstående kodeeksempel.

Bemærk, at "split ()" -metoden flytter fra venstre til højre for at opdele strenge i ord. Hvis du vil opdele streng fra højre til venstre retning, skal du bruge “rsplit ()” i stedet. Dens syntaks, brug og argumenter er nøjagtigt de samme som "split ()" -metoden.

Hvis der ikke findes nogen separator i strengen, mens du bruger "split ()" eller "rsplit ()" -metoder, returneres den originale streng som det eneste listeelement.

Opdelingsmetode

Metoden "partition ()" kan bruges til at dele strenge, og den fungerer identisk med "split ()" -metoden med nogle forskelle. Den mest bemærkelsesværdige forskel er, at den bevarer separatoren og inkluderer den som et element i den resulterende tuple, der indeholder splittede ord. Dette er især nyttigt, hvis du vil opdele strengen i et iterabelt objekt (i dette tilfælde dobbelt) uden at fjerne originale tegn. Overvej koden nedenfor:

text = "LinuxHint.com "
resultat = tekst.skillevæg(".")
print (resultat)

Ovenstående kodeeksempel returnerer “('LinuxHint', '.',' com ') ”som output. Hvis du vil have, at resultatet skal være af listetype, skal du bruge følgende kodeeksempel i stedet:

text = "LinuxHint.com "
resultat = liste (tekst.skillevæg("."))
print (resultat)

Du skulle få “['LinuxHint', '.',' com '] ”som output efter kørsel af ovenstående kodeeksempel.

Metoden "partition ()" tager kun et argument kaldet "sep". Brugere kan angive en separator af enhver længde. I modsætning til "split ()" -metoden er dette argument obligatorisk, så du kan ikke udelade separatoren. Du kan dog angive mellemrum som en separator.

Bemærk, at partitionsmetoden stopper ved den første forekomst af separatoren. Så hvis din streng indeholder flere separatorer, ignorerer "partition ()" -metoden alle andre forekomster. Her er et eksempel, der illustrerer dette:

text = "LinuxHint.co.os"
resultat = liste (tekst.skillevæg("."))
print (resultat)

Kodeprøven producerer “['LinuxHint', '.',' co.os '] ”som output. Hvis du ønsker at opdele i alle tilfælde af separatoren og også inkludere separatoren i den endelige liste, skal du muligvis bruge et "Regular Expression" eller "RegEx" mønster. For eksemplet nævnt ovenfor kan du bruge et RegEx-mønster på følgende måde:

import gen
text = "LinuxHint.co.os"
resultat = re.dele("(\.) ", tekst)
print (resultat)

Du får “['LinuxHint', '.',' co ','.',' os '] ”som output efter udførelse af ovenstående kodeeksempel. Priktegnet er undsluppet i RegEx-erklæringen nævnt ovenfor. Bemærk, at mens eksemplet ovenfor fungerer med et enkelt priktegn, fungerer det muligvis ikke med komplekse separatorer og komplekse strenge. Du bliver muligvis nødt til at definere dit eget RegEx-mønster afhængigt af din brugssag. Eksemplet er netop nævnt her for at give dig en ide om processen med at beholde separatoren i den endelige liste ved hjælp af RegEx-udsagn.

Metoden "partition ()" kan undertiden efterlade tomme strenge, især når separatoren ikke findes i strengen, der skal opdeles. I sådanne tilfælde kan du bruge listeforståelseserklæringer til at fjerne tomme strenge som forklaret i afsnittet "split ()" -metoden ovenfor.

text = "LinuxHint"
resultat = liste (tekst.skillevæg("."))
resultat = [vare for vare i resultat, hvis vare != ""]
print (resultat)

Efter at have kørt ovenstående kode, skal du få “['LinuxHint']” som output.

Konklusion

For enkle og ligetil opdelinger kan du bruge "split ()" og "partition ()" metoder til at få iterable typer. For komplekse strenge og separatorer skal du bruge RegEx-sætninger.

Mus Remap dine museknapper forskelligt til anden software med X-Mouse Button Control
Remap dine museknapper forskelligt til anden software med X-Mouse Button Control
Måske har du brug for et værktøj, der kan ændre din muses kontrol med hver applikation, du bruger. Hvis dette er tilfældet, kan du prøve en applikatio...
Mus Microsoft Sculpt Touch Wireless Mouse Review
Microsoft Sculpt Touch Wireless Mouse Review
Jeg har for nylig læst om Microsoft Sculpt Touch trådløs mus og besluttede at købe den. Efter at have brugt det et stykke tid besluttede jeg at dele m...
Mus AppyMouse pegefelt på skærmen og musemarkør til Windows-tablets
AppyMouse pegefelt på skærmen og musemarkør til Windows-tablets
Tabletbrugere savner ofte musemarkøren, især når de er vante til at bruge bærbare computere. Touchscreen-smartphones og tablets har mange fordele, og ...