De viktigste stringmetodene i Python

Lær de viktigste stringmetodene i Python: upper, lower, split, replace, strip og mer. Eksempler og forklaringer.

Videoforhåndsvisning

Opprett konto for å se video

Det er helt gratis og tar under 30 sekunder

Opprett gratis kontoHar du konto? Logg inn

Du har en tekststreng som inneholder et brukernavn med ekstra mellomrom, eller du trenger å sjekke om en e-postadresse slutter med riktig domene. Slike oppgaver dukker opp hele tiden, og Python har innebygde stringmetoder som løser dem med en enkelt linje kode. Du trenger ikke importere noe. Metodene ligger rett på strengen.

Hvordan stringmetoder fungerer

Alle strenger i Python er objekter, og hvert objekt har metoder knyttet til seg. Du kaller en metode med punktum etter strengen eller variabelen, etterfulgt av metodenavnet og parenteser: tekst.upper(). Noen metoder tar argumenter inne i parentesene, andre klarer seg uten.

En viktig detalj: stringmetoder returnerer en ny streng. De endrer ikke den originale variabelen. Skriver du tekst.upper() uten å lagre resultatet, skjer det ingenting med tekst. Du må lagre returverdien i en variabel, enten den samme eller en ny: tekst = tekst.upper().

Endre store og små bokstaver

upper() gjør alle bokstaver store. "hei verden".upper() gir "HEI VERDEN". lower() gjør det motsatte. Disse to er nyttige når du sammenligner tekst fra brukerinput, der du ikke vet om brukeren skrev "Oslo", "oslo" eller "OSLO". Konverter begge sider til lower() før du sammenligner, og du unngår problemer med store og små bokstaver.

capitalize() gjør bare den første bokstaven stor og resten små. title() gjør den første bokstaven i hvert ord stor. Nyttig for å rydde opp i navn og overskrifter. Pass på at title() kan gi uventede resultater med apostrofer: "kari's".title() gir "Kari'S" fordi Python behandler bokstaven etter apostrofen som starten på et nytt ord.

Fjern uønskede tegn med strip()

strip() fjerner mellomrom (og andre usynlige tegn som linjeskift) fra starten og slutten av en streng. " Kari ".strip() gir "Kari". Denne metoden er helt nødvendig når du jobber med data fra filer eller brukerinput, der ekstra mellomrom sniker seg inn uten at du ser dem.

Du kan også spesifisere hvilke tegn som skal fjernes. "###hei###".strip("#") gir "hei". Trenger du å fjerne bare fra starten eller slutten, bruker du lstrip() og rstrip().

Søk i strenger med find() og count()

find() leter etter en delstreng og returnerer posisjonen (indeksen) der den først dukker opp. "Dette er min tekst".find("er") gir 6, fordi "er" starter på posisjon 6 (Python teller fra 0). Finnes ikke delstrengen, returnerer find() -1 i stedet for å gi en feilmelding.

count() teller hvor mange ganger en delstreng forekommer. "abrakadabra".count("a") gir 5. Nyttig for enkel tekstanalyse, for eksempel å telle antall komma i en CSV-linje.

Bytt ut tekst med replace()

replace() tar to argumenter: hva du vil bytte ut, og hva du vil erstatte det med. "Dette er min tekst".replace("er", "var") gir "Dette var min tekst". Metoden erstatter alle forekomster som standard. Trenger du bare å erstatte den første, kan du legge til et tredje argument: tekst.replace("a", "e", 1) erstatter bare den første "a".

replace() er kraftig for å rydde opp i data. Tenk deg en liste med telefonnumre som bruker ulike formater. En kombinasjon av replace()-kall kan fjerne mellomrom, bindestreker og landskoder i ett steg.

Sjekk starten og slutten med startswith() og endswith()

endswith() sjekker om en streng slutter med en bestemt delstreng og returnerer True eller False. "rapport.pdf".endswith(".pdf") gir True. Perfekt for å filtrere filer etter filtype.

startswith() gjør det samme for starten av strengen. "https://utdannet.no".startswith("https") gir True. Begge metodene skiller mellom store og små bokstaver, så bruk lower() først hvis det er relevant.

Del opp strenger med split()

split() deler en streng ved et skilletegn og returnerer en liste. "Kari,Ola,Per".split(",") gir ["Kari", "Ola", "Per"]. Uten argument splitter den på mellomrom. Denne metoden er førstelinja når du skal parse CSV-data, URL-er, eller lese linje for linje fra en fil.

Motsatsen er join(), som setter en liste sammen til en streng igjen. ", ".join(["Kari", "Ola", "Per"]) gir "Kari, Ola, Per". Legg merke til at join() kalles på separatorstrengen, ikke på listen.

Kjed sammen flere stringmetoder

Fordi hver metode returnerer en ny streng, kan du kjede dem sammen: " Hei Verden ".strip().lower().replace(" ", "_") gir "hei_verden". Python kjører metodene fra venstre til høyre. Først fjernes mellomrom, så blir alt til små bokstaver, og til slutt byttes mellomrom med understrek.

Kjedede metoder er elegante, men ikke overdriv. Tre metoder på en linje er greit. Fem eller flere gjør koden vanskelig å lese og feilsøke. Bruk mellomvariabler når kjeden blir lang.

Sjekk innholdet med in-operatoren

Strengt tatt er in ikke en stringmetode, men en operator du bruker konstant sammen med strenger. "Python" in "Lær Python i dag" gir True. Den sjekker om en delstreng finnes, uten å gi deg posisjonen. Enklere og mer lesbar enn find() når du bare trenger et ja eller nei.

Kombinert med lower() blir den enda kraftigere: "python" in tekst.lower() finner ordet uansett om det er skrevet med stor eller liten bokstav. Denne kombinasjonen dukker opp i nesten alle programmer som filtrerer eller søker i tekst.

Neste steg

Stringmetoder gir deg verktøyene til å manipulere tekst, men for å sette variabler rett inn i en streng er f-strenger den mest lesbare løsningen. Vil du kontrollere programflyten basert på strenginnhold (for eksempel sjekke brukerens svar), tar kontrollflyt-artiklene deg videre. Pythons offisielle referanse for stringmetoder lister alle tilgjengelige metoder med eksempler.

Denne artikkelen bygger på kurset Python for nybegynnere på Utdannet.no. I kurset jobber du med stringmetoder i praksis, lærer indeksering og slicing, og bygger programmer som behandler tekst fra brukerinput.