Pytonorm

Hur man delar strängar i Python

Hur man delar strängar i Python
Den här artikeln kommer att förklara hur man delar strängar i python med metoderna "split ()" och "partition ()". Dessa metoder är särskilt användbara om du vill konvertera en mening eller en grupp ord till tolkbara och iterabla Pythontyper. Alla kodprover i den här guiden testas med Python version 3.8.6.

Delad metod

Metoden "split ()" kan användas för att dela ord med en användardefinierad separator. Den returnerar en lista med delade ord utan att inkludera avgränsaren. Om ingen avgränsare anges av användaren används ett mellanslag (en eller flera) som en avgränsare.

Till exempel kommer koden nedan att returnera “['Linux', 'Hint']" som utdata:

text = "Linux Tips"
text.dela()

Koden nedan returnerar “['LinuxHint', 'com']" som utdata när ".”Används som separator:

text = "LinuxHint.com "
text.dela(".”)

Avgränsaren behöver inte vara en enda karaktär. Delningsmetoden tar två argument:

Båda dessa argument är valfria. Som nämnts ovan, om "sep" -argumentet inte anges, används mellanslag som en separator för delning. Argumentet “maxsplit” har ett standardvärde på “-1” och det delar alla förekomster som standard. Tänk på koden nedan:

text = "LinuxHint.co.oss "
text.dela(".”)

Den returnerar “['LinuxHint', 'co', 'us']" som utdata. Om du vill sluta dela vid den första förekomsten av separatorn, ange “1” som argumentet “maxsplit”.

text = "LinuxHint.co.oss "
text.dela(".”, 1)

Koden ovan returnerar “['LinuxHint', 'co.oss '] ”som utdata. Ange bara antalet förekomster där du vill att delningsprocessen ska stoppas som det andra argumentet.

Observera att om det finns på varandra följande separatorer kommer en tom sträng att returneras för de återstående separatorerna efter den första delningen (när argumentet "maxsplit" inte används):

text = "LinuxHint ... com"
text.dela(".")

Koden ovan returnerar “['LinuxHint',”, 'com'] ”som utdata. Om du vill ta bort tomma strängar från den resulterande listan kan du använda följande uttalande om listförståelse:

text = "LinuxHint ... com"
resultat = text.dela(".")
resultat = [artikel för artikel i resultat om artikel != ""]
skriva ut (resultat)

Du får “['LinuxHint', 'com']" som utdata efter att ha kört ovanstående kodexempel.

Observera att metoden "split ()" flyttas från vänster till höger för att dela strängar i ord. Om du vill dela sträng från höger till vänster riktning, använd “rsplit ()” istället. Dess syntax, användning och argument är exakt samma som "split ()" -metoden.

Om det inte finns någon avgränsare i strängen när du använder metoderna "split ()" eller "rsplit ()" returneras originalsträngen som det enda listelementet.

Fördelningsmetod

Metoden "partition ()" kan användas för att dela strängar och den fungerar identisk med "split ()" -metoden med vissa skillnader. Den mest anmärkningsvärda skillnaden är att den behåller separatorn och inkluderar den som ett objekt i den resulterande tupeln som innehåller splittrade ord. Detta är särskilt användbart om du vill dela strängen i ett iterabelt objekt (i det här fallet tuple) utan att ta bort originaltecken. Tänk på koden nedan:

text = "LinuxHint.com "
resultat = text.dela(".")
skriva ut (resultat)

Ovanstående kodexempel returnerar “('LinuxHint', '.',' com ') ”som utgång. Om du vill att resultatet ska vara av listtyp använder du istället följande kodexempel:

text = "LinuxHint.com "
resultat = lista (text.dela("."))
skriva ut (resultat)

Du borde få “['LinuxHint', '.',' com '] ”som utdata efter att ha kört ovanstående kodexempel.

Metoden "partition ()" tar bara ett argument som heter "sep". Användare kan ange en avgränsare av vilken längd som helst. Till skillnad från "split ()" -metoden är detta argument obligatoriskt, så du kan inte utelämna separatorn. Du kan dock ange mellanslag som avgränsare.

Observera att partitionsmetoden stannar vid den första förekomsten av separatorn. Så om din sträng innehåller flera separatorer kommer metoden "partition ()" att ignorera alla andra händelser. Här är ett exempel som illustrerar detta:

text = "LinuxHint.co.oss "
resultat = lista (text.dela("."))
skriva ut (resultat)

Kodprovet kommer att producera “['LinuxHint', '.',' co.oss '] ”som utdata. Om du vill dela i alla fall av separatorn och inkludera separatorn i den slutliga listan också, kan du behöva använda ett "Regular Expression" eller "RegEx" mönster. För exemplet som nämns ovan kan du använda ett RegEx-mönster på följande sätt:

importera om
text = "LinuxHint.co.oss "
resultat = re.dela("(\.) ", text)
skriva ut (resultat)

Du får “['LinuxHint', '.',' co ','.',' oss '] ”som utdata efter exekvering av ovanstående kodexempel. Punktkaraktären har undkommits i RegEx-uttalandet som nämns ovan. Observera att även om exemplet ovan fungerar med ett enda pricketecken kanske det inte fungerar med komplexa separatorer och komplexa strängar. Du kan behöva definiera ditt eget RegEx-mönster beroende på ditt användningsfall. Exemplet nämns just här för att ge dig en uppfattning om processen att behålla separatorn i den slutliga listan med hjälp av RegEx-uttalanden.

Metoden "partition ()" kan ibland lämna tomma strängar, särskilt när separatorn inte finns i strängen som ska delas. I sådana fall kan du använda listförståelseuttalanden för att ta bort tomma strängar, vilket förklaras i avsnittet ”split ()” ovan.

text = "LinuxHint"
resultat = lista (text.dela("."))
resultat = [artikel för artikel i resultat om artikel != ""]
skriva ut (resultat)

Efter att ha kört ovanstående kod ska du få “['LinuxHint']” som utdata.

Slutsats

För enkla och okomplicerade splittringar kan du använda metoderna "split ()" och "partition ()" för att få iterabla typer. För komplexa strängar och separatorer måste du använda RegEx-uttalanden.

Hur man visar OSD-överlägg i helskärms Linux-appar och -spel
Att spela helskärmsspel eller använda appar i distraktionsfritt helskärmsläge kan avskärma dig från relevant systeminformation som syns i en panel ell...
Topp 5 spelinspelningskort
Vi har alla sett och älskat streaming av spel på YouTube. PewDiePie, Jakesepticye och Markiplier är bara några av de bästa spelarna som har tjänat mil...
Hur man utvecklar ett spel på Linux
För ett decennium sedan skulle inte många Linux-användare förutsäga att deras favoritoperativsystem en dag skulle vara en populär spelplattform för ko...