Hvordan bruke split()-metoden i Python

I denne opplæringen lærer du hvordan du bruker Pythons split()-metode for å dele en streng i en liste med strenger.

Når du arbeider med Python-strenger, kan du bruke flere innebygde strengmetoder for å få modifiserte kopier av strenger, som å konvertere til store bokstaver, sortere en streng og mer. En slik metode er .split() som deler en Python-streng i en liste med strenger, og vi vil lære mer om det ved å kode eksempler.

Ved slutten av opplæringen vil du ha lært følgende:

  • hvordan .split()-metoden fungerer
  • hvordan du tilpasser delingen ved å bruke parameterne sep og maxsplit

La oss begynne!

Syntaks for split()-metoden i Python

Her er den generelle syntaksen for å bruke Pythons split()-metode på en hvilken som helst 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 angir separatoren du vil dele strengen på. Det bør spesifiseres som en streng.
  • maxsplit er et heltall som spesifiserer hvor mange ganger du vil dele strengen.

Standardverdiene deres brukes når du ikke oppgir valgfrie parametere.

  • Når du ikke oppgir sep-verdien eksplisitt, brukes mellomrom som standardskilletegn.
  • Når du ikke spesifiserer verdien for maxsplit, er den standard til -1, noe som betyr at strengen vil bli delt på alle forekomster av skilletegn.

Frasering av syntaksen på vanlig språk:

Split()-metoden deler en streng maxsplit antall ganger ved forekomsten av skilletegn spesifisert av parameteren sep.

Nå som vi har lært syntaksen til Python split()-metoden, la oss fortsette med å kode noen eksempler.

Del en Python-streng i en liste over strenger

Hvis du har Python 3 installert på maskinen din, kan du kode med denne opplæringen ved å kjøre følgende kodebiter i en Python REPL.

  Slik importerer du LinkedIn-kontakter mens du holder e-posten din privat

For å starte REPL, kjør en av følgende kommandoer fra terminalen:

$ python
$ python -i

▶️ Du kan også prøve disse eksemplene på tipsbilk.nets Python-redigeringsprogram.

I dette eksemplet er py_str en Python-streng. La oss kalle .split()-metoden på py_str uten noen parametere og observere utdataene.

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

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

Som vist ovenfor er strengen delt på alle forekomster av mellomrom.

Del en Python-streng ved forekomst av skilletegn

#1. Som et første eksempel, la oss dele strengen py_str med doble understrekinger (__) som skilletegn.

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

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

#2. La oss ta et annet eksempel. Her har py_str tre setninger som hver avsluttes 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 kaller .split()-metoden på denne strengen, med «.» som skilletegn har den resulterende listen tre setninger, som vist i kodecellen ovenfor.

#3. La oss stille noen spørsmål:

  • Hva skjer når skillet aldri forekommer i strengen?
  • Hvordan vil splittelsen skje i dette tilfellet?

Her er et eksempel:

Vi prøver å dele py_str på forekomsten av stjerne

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

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

– som ikke forekommer.

Siden ingen splitting kan gjøres i dette tilfellet, inneholder den resulterende listen hele strengen.

I neste avsnitt skal vi se hvordan vi kan bruke split()-metoden på innholdet i en tekstfil.

Del innholdet i en Python-fil

Når du arbeider med tekstfiler i Python, må du kanskje dele filens innhold – basert på en separator – for enklere behandling.

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='')

Kodebiten nedenfor viser hvordan du bruker split på innholdet i eksempeltekstfilen.

  • Koden ovenfor gjør følgende:
  • Bruker med kontekstbehandling for å åpne og jobbe med tekstfilen «sample.txt».
  • Leser innholdet i filen ved å bruke .read()-metoden på filobjektet f.
  • Splitter innholdet ved forekomsten av separatorellipsen (…) i en liste str_list.
  Hvordan lage og dele stedssamlinger i Apple Maps

Går gjennom str_list for å få tilgang til hver streng og skriver den ut.

# Output
This is a sample text file
It contains info on
Getting started with <a href="https://tipsbilk.net.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 utgangen.

Som en øvelse kan du prøve å dele innholdet i en tekstfil på en valgfri separator.

Del en Python-streng i biter

Når du deler en streng én gang, får du to biter; dele den to ganger vil få tre.

📋 Generelt, når du deler en streng K ganger, vil du få K + 1 biter.

Dette er illustrert nedenfor.

Hvordan maxsplit-parameteren fungerer (bilde av 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 setter maxsplit lik 1. Vi har ikke spesifisert noen skilletegn, så delingen vil skje på mellomrom som standard.

Selv om den andre delen i listen inneholder mellomrom, skjer ikke delingen fordi delingen nå kontrolleres av maxsplit-verdien til é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. La oss øke maxsplit-verdien til 2 og observere hvordan splittelsen skjer for følgende eksempel.

Som med det forrige eksemplet, bestemmer maxsplit-verdien antall splittinger som gjøres. Vi får tre biter, delt etter mellomroms første og andre forekomst.

#3. Hva skjer hvis du setter maxsplit til en verdi som er større enn antall forekomster av separatoren?

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

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

I den følgende kodecellen setter vi maxsplit den til 8 når strengen bare inneholder fire kommaer.

Her deler split-metoden py_str på alle fire forekomster av et komma. Selv om du prøver å sette maxsplit til en verdi som er mindre enn -1, for eksempel -7, vil splittingen gjøres på alle forekomster av separatoren.

La oss deretter sette sammen alt vi har lært og bruke begge sep maxsplit-parametrene.

Del en Python-streng i biter 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. Anta at vi må dele strengen py_str i tre biter ved forekomst av komma (,). For å gjøre dette kan vi sette sep-verdien til «,» og maxsplit-verdien til 2 i metodekallet.

  19 fantastiske hacks for å hacke Roku for å få gratis kanaler

Som det fremgår av utgangen, skjer splittingen to ganger på de to første forekomstene av separatoren.

#2. Separatoren sep trenger ikke alltid være et spesialtegn. Det kan være en sekvens av spesialtegn, som de doble understrekingene vi brukte tidligere, eller det kan til og med 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!']

La oss sette strengen «learn» som sep-argumentet og se hvordan splittelsen skjer for varierende verdier av maxsplit. Her setter 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 ønsker å dele py_str på alle forekomster av strengen «learn», kan vi kalle denne .split()-metoden ved å sette sep = «learn’—uten maxsplit-parameteren. Dette tilsvarer eksplisitt å sette maxsplit-verdien til -1, som vist i kodecellen nedenfor.

Vi ser at splittelsen skjer i alle forekomster av «lær».

Innpakning

Jeg håper du nå har forstått hvordan du bruker .split()-metoden med Python-strenger.

  • Her er et sammendrag av denne opplæringen:
  • Pythons innebygde .split()-metode deler en streng i en liste med strenger.
  • Bruk string.split() for å dele strengen på alle forekomster av standardskilletegn, mellomrom.

Bruk string.split(sep,maxsplit) for å dele strengen maxsplit antall ganger ved forekomst av separator sep. Den resulterende listen har maxsplit+1 elementer.

Som et neste trinn kan du lære hvordan du sjekker om Python-strenger er palindromer eller anagrammer.

x