De viktigste listemetodene i Python

Lær append, remove, sort, pop og andre listemetoder i Python. Komplett oversikt med eksempler.

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 liste med brukernavn og trenger å legge til en ny bruker, fjerne en som har slettet kontoen, og sortere listen alfabetisk. Uten listemetoder i Python måtte du skrevet all denne logikken selv. Med dem tar det én linje per operasjon. Listemetoder er innebygde funksjoner som hører til hvert listeobjekt, og de dekker det meste du trenger for å manipulere data.

Legge til elementer: append(), insert() og extend()

Den metoden du bruker oftest er append(). Den legger til ett element på slutten av listen:

dyr = ["katt", "hund", "kanin"]
dyr.append("bjørn")
Resultat: ["katt", "hund", "kanin", "bjørn"]

Trenger du elementet på en bestemt plass, bruker du insert(). Den tar to argumenter: indeksen der elementet skal inn, og verdien:

vokaler = ["a", "e", "i", "u"]
vokaler.insert(3, "o")
Resultat: ["a", "e", "i", "o", "u"]

Et vanlig behov er å slå sammen to lister. Her er forskjellen mellom append() og extend() viktig. Bruker du append() med en liste som argument, legges hele listen inn som ett element (en liste i listen). Bruker du extend(), pakkes elementene ut og legges til enkeltvis:

dyr.extend(["løve", "tiger"])
Resultat: ["katt", "hund", "kanin", "bjørn", "løve", "tiger"]

Tommelregelen: append() for enkeltverdier, extend() for å slå sammen lister. Bruker du extend() med en streng i stedet for en liste, splittes strengen opp i enkeltbokstaver. dyr.extend("bjørn") legger til "b", "j", "ø", "r", "n" som separate elementer. Det er nesten aldri det du ønsker.

Fjerne elementer: remove(), pop() og clear()

Med remove() fjerner du et element basert på verdien. Du trenger ikke vite indeksen:

dyr.remove("hund")

Hvis verdien ikke finnes i listen, får du en ValueError. Sjekk med in-operatoren først hvis du er usikker: if "hund" in dyr:

pop() fjerner og returnerer et element basert på indeks. Uten argument fjerner den det siste elementet:

siste = dyr.pop() fjerner siste element
første = dyr.pop(0) fjerner første element

Det at pop() returnerer verdien er nyttig. Du kan lagre den i en variabel og bruke den videre. Typisk eksempel: du fjerner et element fra en kø og prosesserer det.

clear() tømmer hele listen. Etterpå sitter du igjen med en tom liste []. Den er nyttig når du vil gjenbruke en listevariabel uten å opprette en ny. Alle referanser til listen peker fortsatt på det samme objektet, bare nå uten innhold.

Sortere og reversere: sort() og reverse()

Metoden sort() sorterer listen fra lavest til høyest for tall, eller alfabetisk for strenger. Den endrer selve listen permanent:

tall = [5, 1, 9, 3, 7]
tall.sort()
Resultat: [1, 3, 5, 7, 9]

Vil du sortere fra høyest til lavest, legg til reverse=True:

tall.sort(reverse=True)
Resultat: [9, 7, 5, 3, 1]

En viktig detalj: sort() returnerer None. Den endrer listen direkte. Skriver du ny_liste = tall.sort(), får ny_liste verdien None, ikke den sorterte listen. Trenger du en sortert kopi uten å endre originalen, bruk den innebygde funksjonen sorted() i stedet.

reverse() snur rekkefølgen på listen uten å sortere. Første element blir siste, siste blir første. Den gjør ikke det samme som sort(reverse=True). Reverse() speilvender rekkefølgen uavhengig av verdiene. Har du listen [3, 1, 7], gir reverse() [7, 1, 3], mens sort(reverse=True) gir [7, 3, 1].

Finne elementer: index() og count()

Metoden index() finner posisjonen til et element. Du gir den en verdi, og den returnerer indeksen til den første forekomsten:

dyr = ["katt", "hund", "kanin", "hund"]
dyr.index("hund") gir 1

Hvis verdien ikke finnes, krasjer programmet med ValueError. Sjekk derfor alltid med in først, eller bruk en if-setning rundt kallet.

count() teller antall forekomster av en verdi:

dyr.count("hund") gir 2

Denne er nyttig for å sjekke duplikater. Returnerer count() 0, finnes ikke verdien. Returnerer den mer enn 1, har du duplikater. Kombinerer du count() med en for-løkke, kan du raskt finne alle duplikater i en liste.

Listemetoder endrer listen direkte

Det viktigste å huske om listemetoder i Python er at de fleste endrer listen på stedet. De returnerer ikke en ny liste. Skriver du resultat = dyr.append("fugl"), er resultat None. Elementet er lagt til i dyr, men append() gir deg ikke noe tilbake.

Unntaket er pop(), som returnerer elementet den fjerner, og count() og index(), som returnerer tall. Alle de andre (append, insert, extend, remove, sort, reverse, clear) returnerer None og modifiserer listen direkte. Har du denne regelen i bakhodet, unngår du en rekke forvirrende bugs. Når du er i tvil, kjør koden i terminalen og print resultatet. Da ser du med en gang om metoden returnerer noe eller endrer listen på stedet.

Neste steg

Nå som du kjenner listemetodene, kan du skrive mer kompakt kode med list comprehension. Vil du jobbe med data der du trenger nøkler i stedet for indekser, er dictionaries neste naturlige steg. Pythons offisielle dokumentasjon har en komplett oversikt over listemetoder med flere eksempler.

Denne videoen er hentet fra kurset Python for nybegynnere på Utdannet.no. I det fulle kurset bruker du listemetodene i praktiske oppgaver, lærer å kombinere dem med løkker og betingelser, og bygger programmer som sorterer, filtrerer og behandler data effektivt.