Slik bruker du slicing i Python

Lær slicing i Python for å hente ut deler av strenger og lister. Grunnleggende syntaks, negative indekser og steg forklart med eksempler.

Du vet allerede at du kan hente ut en enkelt bokstav fra en streng med indeksering. Men hva om du vil hente ut et helt ord, eller alt etter de fem første tegnene? Da bruker du slicing.

Slicing i Python lar deg hente ut en del av en streng, en liste eller en annen sekvens ved å oppgi et start- og sluttpunkt. Syntaksen er enkel: sekvens[start:stopp]. Start er inkludert, stopp er ikke.

Grunnleggende slicing av strenger

Ta strengen text = "Dette er utdannet". For å hente ut ordet "Dette" skriver du:

text[0:5]

Du får tegnene fra indeks 0 til og med indeks 4. Indeks 5 er ikke inkludert. Det er en vanlig kilde til forvirring, men regelen er konsekvent: start er med, stopp er ikke med.

Utelater du startverdien, begynner Python fra starten av strengen:

text[:5] gir "Dette"

Utelater du sluttvedien, tar Python med alt til og med siste tegn:

text[8:] gir "utdannet"

Og text[:] gir hele strengen. Det ser unyttig ut, men det lager en kopi, noe som kan være nyttig med lister.

Slicing med negative indekser

Negative indekser teller bakfra. -1 er siste tegn, -2 er nest siste, og så videre:

text[-8:] gir "utdannet" (de siste 8 tegnene)

text[:-1] gir alt unntatt siste tegn.

Dette er spesielt nyttig når du ikke vet lengden på strengen, men vet at du vil ha de siste N tegnene.

Slicing med steg

Den fulle syntaksen for slicing er sekvens[start:stopp:steg]. Steg bestemmer hvor mange posisjoner Python hopper mellom hvert element:

text[::2] gir annethvert tegn: "Dt rutant"

Et negativt steg reverserer retningen:

text[::-1] gir strengen baklengs: "tennadtu re etteD"

Dette er den enkleste måten å snu en streng i Python. Ingen løkke, ingen ekstra funksjon.

Slicing fungerer på lister også

Alt du gjør med strenger kan du gjøre med lister:

numbers = [10, 20, 30, 40, 50]
numbers[1:4] gir [20, 30, 40]
numbers[::-1] gir [50, 40, 30, 20, 10]

Forskjellen er at lister er muterbare. Du kan bruke slicing til å erstatte en del av listen:

numbers[1:3] = [200, 300]

Nå er listen [10, 200, 300, 40, 50]. Med strenger kan du ikke gjøre dette, fordi strenger er uforanderlige.

Vanlige feil med slicing

Den vanligste feilen er å glemme at sluttindeksen ikke er inkludert. text[0:4] gir fire tegn (indeks 0, 1, 2, 3), ikke fem.

En annen feil er å blande sammen indeksering og slicing. text[5] gir et enkelt tegn. text[5:6] gir en streng med ett tegn. Resultatet ser likt ut, men typen er forskjellig.

Slicing gir aldri IndexError, selv om du bruker indekser som er utenfor rekkevidde. text[0:100] gir hele strengen uten feil. Python klipper stille til det som finnes.

Vil du jobbe mer med strenger? Stringmetoder i Python viser deg hvordan du manipulerer tekst med innebygde metoder. Og lister i Python dekker slicing i kombinasjon med andre listeoperasjoner.

Pythons offisielle dokumentasjon forklarer slicing i detalj under sekvensoperasjoner.

Vil du mestre slicing og andre grunnleggende Python-teknikker med video og oppgaver? Python for nybegynnere tar deg gjennom alt fra strenger og lister til funksjoner og moduler.