Sådan bruger du split()-metoden i Python

I denne øvelse lærer du, hvordan du bruger Pythons split()-metode til at opdele en streng i en liste med strenge.

Når du arbejder med Python-strenge, kan du bruge flere indbyggede strengmetoder til at få modificerede kopier af strenge, såsom konvertering til store bogstaver, sortering af en streng og mere. En sådan metode er .split(), der opdeler en Python-streng i en liste med strenge, og vi lærer mere om det ved at kode eksempler.

Ved slutningen af ​​selvstudiet har du lært følgende:

  • hvordan .split()-metoden virker
  • hvordan man tilpasser opdelingen ved hjælp af sep og maxsplit parametrene

Lad os begynde!

Syntaks for split()-metoden i Python

Her er den generelle syntaks til at bruge Pythons split()-metode på enhver gyldig streng:

string.split(sep, maxsplit)

# Parameters:
sep, maxsplit

# Returns:
A list of strings

Her kan streng være en hvilken som helst gyldig Python-streng.

Både sep- og maxsplit-parametrene er valgfrie.

  • sep angiver den separator, som du vil dele strengen på. Det skal angives som en streng.
  • maxsplit er et heltal, der angiver, hvor mange gange du vil opdele strengen.

Deres standardværdier bruges, når du ikke angiver valgfrie parametre.

  • Når du ikke udtrykkeligt angiver sep-værdien, bruges mellemrum som standardseparator.
  • Når du ikke angiver værdien for maxsplit, er den standard til -1, hvilket betyder, at strengen vil blive opdelt på alle forekomster af separatoren.

Frasering af syntaksen i almindeligt sprog:

Split()-metoden opdeler en streng maxsplit antal gange ved forekomsten af ​​separator specificeret af parameteren sep.

  Begræns appadgang og enhedsfunktionalitet med en pinkode

Nu hvor vi har lært syntaksen for Python split()-metoden, lad os fortsætte med at kode nogle eksempler.

Opdel en Python-streng i en liste over strenge

Hvis du har Python 3 installeret på din maskine, kan du kode med denne tutorial ved at køre følgende kodestykker i en Python REPL.

For at starte REPL skal du køre en af ​​følgende kommandoer fra terminalen:

$ python
$ python -i

▶️ Du kan også prøve disse eksempler på toadmin.dk’s Python-editor.

I dette eksempel er py_str en Python-streng. Lad os kalde .split()-metoden på py_str uden nogen parametre og observere outputtet.

py_str = "Learn how to use split() in Python"
py_str.split()

# Output
['Learn', 'how', 'to', 'use', 'split()', 'in', 'Python']

Som det ses ovenfor, er strengen delt på alle forekomster af mellemrum.

Opdel en Python-streng ved forekomst af separatorer

#1. Som et første eksempel, lad os opdele strengen py_str med dobbelt understregning (__) som separator.

py_str = "All__the__best"
py_str.split(sep='__')

# Output
['All', 'the', 'best']

#2. Lad os tage et andet eksempel. Her har py_str tre sætninger, der hver afsluttes med et punktum (.).

py_str = "I love coding. Python is cool. I'm learning Python in 2022"
py_str.split(sep='.')

# Output
['I love coding', ' Python is cool', " I'm learning Python in 2022"]

▶️ Når vi kalder .split()-metoden på denne streng, med ‘.’ som separator har den resulterende liste tre sætninger, som det ses i ovenstående kodecelle.

#3. Lad os stille et par spørgsmål:

  • Hvad sker der, når separatoren aldrig forekommer i strengen?
  • Hvordan vil opdelingen ske i dette tilfælde?

Her er et eksempel:

Vi forsøger at opdele py_str på forekomsten af ​​stjerne

py_str = "This line contains no asterisk."
py_str.split(sep='*')

# Output
['This line contains no asterisk.']

– hvilket ikke sker.

Da der ikke kan foretages opdeling i dette tilfælde, indeholder den resulterende liste hele strengen.

I næste afsnit vil vi se, hvordan vi kan bruge split()-metoden på indholdet af en tekstfil.

Opdel indholdet af en Python-fil

Når du arbejder med tekstfiler i Python, skal du muligvis opdele filens indhold – baseret på en separator – for lettere behandling.

  Download filer og se fremskridt uden en browser med filoverførsel

Her er et eksempel på en tekstfil:

with open('sample.txt') as f:
  content = f.read()
  str_list= content.split(sep='...')
  for string in str_list:
    print(string,end='')

Kodestykket nedenfor viser, hvordan man bruger split på indholdet af eksempeltekstfilen.

  • Ovenstående kode gør følgende:
  • Bruger med konteksthåndtering til at åbne og arbejde med tekstfilen ‘sample.txt’.
  • Læser indholdet af filen ved hjælp af .read()-metoden på filobjektet f.
  • Opdeler indholdet ved forekomsten af ​​separator-ellipsen (…) i en liste str_list.

Løber gennem str_list for at få adgang til hver streng og udskriver den.

# Output
This is a sample text file
It contains info on
Getting started with <a href="https://toadmin.dk.com/pcap-certification/">programming in Python</a>
According to the 2022 StackOverflow Developer Survey
Python is one of the most-loved programming languages
So what are you waiting for? Start learning!

Her er outputtet.

Som en øvelse kan du prøve at opdele indholdet af en tekstfil på en valgfri separator.

Opdel en Python-streng i stykker

Når du deler en streng én gang, får du to bidder; at dele den to gange vil få tre.

📋 Generelt, når du deler en streng K gange, får du K + 1 bidder.

Dette er illustreret nedenfor.

Sådan fungerer parameteren maxsplit (Billede af forfatteren)

py_str = "Chunk#1  I'm a larger chunk, Chunk#2"
py_str.split(maxsplit=1)

# Output
['Chunk#1', "I'm a larger chunk, Chunk#2"]

#1. Vi sætter maxsplit lig med 1. Vi har ikke angivet en separator, så opdelingen vil som standard forekomme på mellemrum.

Selvom den anden del af listen indeholder mellemrum, sker opdelingen ikke, fordi opdelingen nu styres af maxsplit-værdien på én.

py_str = "Chunk#1 Chunk#2 I'm one large Chunk#3, even though I contain whitespaces"
py_str.split(maxsplit=2)

# Output
['Chunk#1',
 'Chunk#2',
 "I'm one large Chunk#3, even though I contain whitespaces"]

#2. Lad os øge maxsplit-værdien til 2 og observere, hvordan opdelingen opstår i det følgende eksempel.

Som med det foregående eksempel bestemmer maxsplit-værdien antallet af opdelinger. Vi får tre bidder, opdelinger efter mellemrums første og anden forekomst.

#3. Hvad sker der, hvis du indstiller maxsplit til en værdi, der er større end antallet af forekomster af separatoren?

py_str = "There, are, only, 4, commas"
py_str.split(maxsplit=8)

# Output
['There,', 'are,', 'only,', '4,', 'commas']

I den følgende kodecelle sætter vi maxsplit det til 8, når strengen kun indeholder fire kommaer.

  Sådan rettes DirecTV fejlkode 775

Her opdeler splitmetoden py_str på alle fire forekomster af et komma. Selvom du prøver at indstille maxsplit til en værdi mindre end -1, f.eks. -7, vil opdelingen blive udført på alle forekomster af separatoren.

Lad os derefter sammensætte alt det, vi har lært, og bruge begge sep maxsplit-parametrene.

Opdel en Python-streng i bidder på en separator

py_str = "Chunk#1, Chunk#2, I'm one large Chunk#3, even though I contain a ,"
py_str.split(sep = ',',maxsplit=2)

# Output
['Chunk#1', ' Chunk#2', " I'm one large Chunk#3, even though I contain a ,"]

#1. Antag, at vi skal opdele strengen py_str i tre bidder ved forekomsten af ​​komma (,). For at gøre dette kan vi indstille sep-værdien til ‘,’ og maxsplit-værdien til 2 i metodekaldet.

Som det ses i outputtet, sker opdelingen to gange på de to første forekomster af separatoren.

#2. Separatoren sep behøver ikke altid at være en speciel karakter. Det kan være en sekvens af specialtegn, som de dobbelte understregninger, vi brugte tidligere, eller det kan endda være en understreng.

py_str = "You need to learn data structures, learn algorithms, and learn more!"
py_str.split(sep = 'learn',maxsplit=2)

# Output
['You need to ', ' data structures, ', ' algorithms, and learn more!']

Lad os sætte strengen ‘learn’ som sep-argumentet og se, hvordan opdelingen opstår for forskellige værdier af maxsplit. Her sætter vi maxsplit til 2.

py_str = "You need to learn data structures, learn algorithms, and learn more!"
py_str.split(sep = 'learn',maxsplit=-1)

# Output
['You need to ', ' data structures, ', ' algorithms, and ', ' more!']

#3. Hvis du gerne vil opdele py_str på alle forekomster af strengen ‘learn’, kan vi kalde denne .split()-metode ved at sætte sep = ‘learn’—uden maxsplit-parameteren. Dette svarer til eksplicit at sætte maxsplit-værdien til -1, som vist i kodecellen nedenfor.

Vi ser, at opdelingen forekommer i alle forekomster af ‘lær’.

Afslutter

Jeg håber, du nu har forstået, hvordan du bruger .split()-metoden med Python-strenge.

  • Her er en oversigt over denne tutorial:
  • Pythons indbyggede .split()-metode opdeler en streng i en liste med strenge.
  • Brug string.split() til at opdele strengen på alle forekomster af standardseparatoren, mellemrum.

Brug string.split(sep,maxsplit) til at opdele strengen maxsplit antal gange ved forekomsten af ​​separator sep. Den resulterende liste har maxsplit+1 elementer.

Som et næste trin kan du lære, hvordan du kontrollerer, om Python-strenge er palindromer eller anagrammer.