Hva er en liste?
En liste er bare en samling med ting. Og det kan være en samling med alt mulig. Du kan ha tall, du kan ha tekst, du kan ha objekter, du kan ha en blanding av ting, alt mulig.
Dette er nyttig for å ikke trenge å skrive en million variabler for lignende ting. 💯🦍
Del 1 - Opprette Lister
Å opprette en liste er veldig enkelt. Alt vi trenger å gjøre er å bruke hake-paranteser [ og ].
Oppgave 1.1a
Bruk hakeparenteser og lag en liste som inneholder dyr, deretter skriv den ut.
Svaret
dyr = ["katt", "hund", "mus", "fisk", "fugl"]
print(dyr)
Syntaks
Lister må ha komma , mellom hver ting i lista.
Hvorfor er dette nyttig?
Se for deg at du skal holde styr på 10 dyr i koden din.
Du kunne ha skrevet dette slik:
dyr1 = "katt"
dyr2 = "hund"
dyr3 = "mus"
dyr4 = "fisk"
dyr5 = "fugl"
dyr6 = "elefant"
dyr7 = "kenguru"
dyr8 = "koala"
dyr9 = "papegøye"
dyr10 = "tiger"
Det blir litt upraktisk jo flere dyr du har. Tenk om du skulle ha 100 dyr, 1000 dyr. Hva om du nå skal skrive ut alle dyrene, da blir det hvertfall vanskelig. Derfor kan vi heller bruke lister. Det gjør koden din mye lettere å skrive og sparer deg masse tid.
dyr = ["katt", "hund", "mus", "fisk", "fugl", "elefant", "kenguru", "koala", "papegøye", "tiger"]
print(dyr)
Oppgave 1.1b
Legg til noen flere dyr i lista ved hjelp av flere elementer, hva skjer nå?
Oppgave 1.2
Det trenger ikke bare å være tekst i lister, prøv å lag en liste med tall.
Svaret
tall = [47, 137, 214, 1337]
print(tall)
Hermetegn?
Her brukes ikke hermetegn " rundt tallene, siden vi vil at de skal være tall og ikke tekst.
Oppgave 1.3
Prøv nå å lage en liste som inneholder en miks av tekst og tall for å se hva som skjer:
Svaret
liste = ["katt", 1337, 214, "hund", "fisk", 137]
print(liste)
Del 2 - Hente ut i fra lister
I Del 1 så vi at vi kan bruke print() for å skrive ut hele listen. Men hva om vi vil bare hente ut noe fra listen? Da kan vi bruke [] for å hente ut en “index”.
Index?
Index er et ord som ikke har så mange bra synonymer. Men det du trenger å vite er at det forteller hvor noe ligger. La oss se på et eksempel.
Oppgave 2.1
Se på denne listen under:
dyr = ["katt", "hund", "kenguru", "fisk", "mus"]
Hva skjer når du skriver, altså vi vil hente ut det som ligger på index nummer 1 i listen:
print(dyr[1])
Hvorfor printes "hund" ut, og ikke "katt"?
Index begynner ikke på 1!
Index til en liste begynner på 0 og ikke 1. Med andre ord, det første elementet i en liste har index 0, det andre har index 1, det tredje har index 2 også videre. Det er mange tekniske grunner til hvorfor det er slik, men det viktigste for deg er å huske at det begynner på 0.
Hvis vi vil skrive ut "katt", da kan vi skrive:
print(dyr[0])
Oppgave 2.2
Eksempelliste:
Gjerne kopier denne koden inn i programmet ditt.
dyr = ["katt", "hund", "kenguru", "fisk", "mus", "gorilla", "hest", "ku", "elefant"]
Fra eksempellisten over, prøv å hent og print() ut følgende:
"kenguru""fisk""elefant""hest"
Oppgave 2.3
Hva skjer hvis du prøver å skrive:
print(dyr[9])
Svaret
Det som skjer her er at du prøver å hente noe som er utenfor listen vår, altså, vi har 9 ting i listen vår, index nummer 9 er det 10. elementet, altså vi prøvre å hente nummer 10 av 9 ting, det går ikke!
Oppgave 2.4 - Hente ut og lagre
Prøv å hent ut en verdi fra listen i Oppgave 2.2, og så lagre verdien i en variabel.
Svaret
dyr = ["katt", "hund", "kenguru", "fisk", "mus", "gorilla", "hest", "ku", "elefant"]
dyret = dyr[3]
Hvilken verdi får dyret?
Svaret
"fisk"
Oppgave 2.5a
Hent ut to forskjellige dyr og lagre dem i variabler, for eksempel dyret1 og dyret2.
Svaret
dyr = ["katt", "hund", "kenguru", "fisk", "mus", "gorilla", "hest", "ku", "elefant"]
dyret1 = dyr[3]
dyret2 = dyr[5]
Oppgave 2.5b
Bruk en if og else sjekk om dyrene er like eller ikke.
Svaret
dyr = ["katt", "hund", "kenguru", "fisk", "mus", "gorilla", "hest", "ku", "elefant"]
dyret1 = dyr[3]
dyret2 = dyr[5]
if dyret1 == dyret2:
print("Dyrene er like!")
else:
print("Dyrene er ikke like... :(")
Hva skjer dersom du prøver å hente ut samme index på begge dyrene nå?
Del 3 - Endre verdien på noe i en liste
Oppgave 3.1a
Prøv å skriv denne koden:
tall = [1, 5, 7, 11, 13, 17, 19, 23]
print(tall[3])
tall[3] = 137
print(tall[3])
Her ser vi at vi kan endre på verdien i en liste, verdier i lister fungerer stortsett som en variabel.
Oppgave 3.1b
Prøv å endre en annen index med en verdi.
Oppgave 3.1c
Prøv å skrive ut hele listen i begge print()-ene, er det klarere da?
Svaret
tall = [1, 5, 7, 11, 13, 17, 19, 23]
print(tall)
tall[3] = 137
print(tall)
Det denne kommer til å skrive ut er:
[1, 5, 7, 11, 13, 17, 19, 23]
[1, 5, 7, 137, 13, 17, 19, 23]
Del 4 - Legge til elementer i en liste
Et veldig nyttig konsept med lister er at det går an å legge ting til i lister. Her skal vi lære to ting:
- Legge ting til lister
- Bruke funksjoner på lister
Den andre forteller dere nok ikke mye, men vi skal se på hva dette betyr med et eksempel! 👍
Oppgave 4.1 - append funksjonen
Se på denne listen:
dyr = ["katt", "hund", "kenguru"]
print(dyr)
Bruk append funksjonen til å legge til et nytt dyr i denne listen, deretter skriv ut listen igjen.
Hvordan bruker jeg append?
Vi kan bruke append funksjonen slik:
dyr.append("dyret")
Hvordan fungerer dette? Dyr er en liste, og en liste har tilgang til en haug med funksjoner du kan bruke.
En av disse funksjonene er append.
For å bruke denne skriver du variabelnavnet til listen, altså dyr i dette tilfellet, deretter punktum . så navnet på funksjonen, altså append. Til slutt må du skrive mellom parentesene hva du skal legge til.
Pass på at denne “syntax”-en er slik, eller så vil det ikke fungere. De følgende eksemplene vil ikke fungere:
dyr append("dyret")dyr. append("dyret")dyr .append("dyret")dyr.append "dyret"
Svaret
dyr = ["katt", "hund", "kenguru"]
print(dyr)
dyr.append("elefant")
print(dyr)
Oppgave 4.2
Prøv deretter å legge til litt flere ting i listen med flere linjer med append.
Oppgave 4.3
Spør brukeren om et dyr å legge til ved hjelp av input, deretter legg til dyret i listen.
Svaret
dyr = ["katt", "hund", "kenguru"]
print(dyr)
dyret = input("Skriv inn et nytt dyr: ")
dyr.append(dyret)
print(dyr)
Del 5 - Slette elementer fra en liste
Jeg hater katter! Jeg vil slette katter fra verden! (🐱 -> 💀)
Vi skal nå se på to måter å slette ting fra lister. Og det er ved hjelp av to nye funksjoner:
removepop
remove funksjonen
remove funksjonen er en funksjon som kan brukes for å slette ting fra en liste. Denne tar inn en verdi vi har lyst til å slette.
Oppgave 5.1 - Bruk remove
Se på denne listen:
dyr = ["katt", "hund", "kenguru"]
print(dyr)
Bruk remove funksjonen til å slette "katt" fra denne listen.
Hint: den bruker helt lik skrivemåte som append men der vi skriver remove istedet.
Svaret
dyr = ["katt", "hund", "kenguru"]
print(dyr)
dyr.remove("katt")
print(dyr)
Oppgave 5.2
Bruk remove til å slette noen andre ting fra listen.
Oppgave 5.3
Bruke append for å legge til noe i en liste, deretter bruk remove til å slette dette fra listen igjen.
Svaret
dyr = ["katt", "hund", "kenguru"]
print(dyr)
dyr.append("elefant")
print(dyr)
dyr.remove("elefant")
print(dyr)
Hvorfor er dette nyttig?
Det er kanskje ikke så lett å se hvorfor ennå, men det blir nyttig når vi må jobbe med mye data!
pop funksjonen
Denne funksjonen spiller desverre ikke pop-musikk (💃🕺), men den kan “poppe” noe vekk fra en liste. Det er nok best vi ser på et eksempel.
pop funksjonen er en annen funksjon som kan brukes for å slette ting fra en liste. I stedet for å ta inn verdien på det vi skal slette tar den heller inn en index for sletting.
Oppgave 5.3 - Bruk pop
Begynn med denne koden:
dyr = ["katt", "hund", "kenguru", "elefant"]
print(dyr)
Bruk pop til å slette "katt" fra listen.
Hvordan bruker jeg pop?
Vi kan bruke pop funksjonen slik:
dyr.pop(index)
index er et tall og følger samme system som i Del 2. Indexer begynner på 0, så hvis vi vil slette første element i en liste skriver vi dyr.pop(0).
Svaret
dyr = ["katt", "hund", "kenguru", "elefant"]
print(dyr)
dyr.pop(0)
print(dyr)
Oppgave 5.4 - Bruk pop igjen
Etter å ha slettet "katt", prøv deretter å slette "hund" fra listen. Hva må du gjøre?
Svaret
dyr = ["katt", "hund", "kenguru", "elefant"]
print(dyr)
dyr.pop(0) # sletter katt
dyr.pop(0) # sletter hund
print(dyr)
Hvorfor 0 to ganger?
Logikken er kanskje litt forvirrende, men la oss se på det på denne måten:
- Listen vår starter som
["katt", "hund", "kenguru", "elefant"] - Vi bruker
pop(0) - Nå ser listen ut som:
["hund", "kenguru", "elefant"]
Hva legger du merke til?
"hund" er nå element nr. 0 i listen! Med pop så slettes elementet. Det betyr at at alt annet flyttes.
- Vi bruker
pop(0)igjen - Nå ser listen ut som:
["kenguru", "elefant"]
Del 6 - Sortere en liste
Det siste vi skal se på i Python 2, er å sortere lister. Dette er en svært viktig funksjon.
Her brukes sort funksjonen!
Oppgave 6.1 - Bruk sort
Begynn med denne koden:
dyr = ["katt", "hund", "kenguru", "elefant", "koala", "fugl", "papegøye", "mus"]
print(dyr)
Bruk sort funksjonen til å sortere dyrene, skriv deretter ut listen for å se forskjellen. Her brukes funksjoner på lignende måte, men du trenger ikke å ta noen argumenter inn. Hvis du er usikker på hva dette betyr, se på svaret unner.
Svaret
dyr = ["katt", "hund", "kenguru", "elefant", "koala", "fugl", "papegøye", "mus"]
print(dyr)
dyr.sort()
print(dyr)
Argumenter? (👊🤬 -> ☝🤓)
Her kan vi se et eksempel på en funksjon uten argumenter. Hvis du husker fra “Python 3” så er argumenter er det du tar inn mellom parentesene () i en funksjon. sort trenger ingen argumenter. Vi må allikevel ha med parentesene.
Oppgave 6.2 - Sortere tall
Du kan sortere andre ting en tekst også, prøv å sorter en liste med tall. Her er en eksempel-liste (gjerne bruk en egen):
tall = [1, 5, 92, 12, 137, 49, 47, 137, 22, 0, 214, -3, -56, 23]
Svaret
tall = [1, 5, 92, 12, 137, 49, 47, 137, 22, 0, 214, -3, -56, 23]
tall.sort()
# Printer ut [-56, -3, 0, 1, 5, 12, 22, 23, 47, 49, 92, 137, 137, 214]
print(tall)
Ekstra - Andre liste-funksjoner som kan være nyttige
Hvis du vil ha mer informasjon om disse kan du gå hit: W3schools Python Lists
Denne funksjonen sletter alt fra en liste.
dyr = ["katt", "hund", "kenguru", "elefant"]
print(dyr)
dyr.clear()
print(dyr) # listen er tom
Kopierer listen.
dyr = ["katt", "hund", "kenguru", "elefant"]
print(dyr)
andre_dyr = dyr.clone()
print(andre_dyr) # listen er lik som dyr
Teller antallet av et element i en liste.
dyr = ["katt", "hund", "kenguru", "elefant", "katt", "mus", "elefant", "katt"]
print(dyr.count("hund")) # 1 hund i listen
print(dyr.count("elefant")) # 2 elefanter i listen
print(dyr.count("katt")) # 3 katter i listen
Finner index-en til elementet du spør om. Den finner den første i listen.
dyr = ["katt", "hund", "kenguru", "elefant"]
print(dyr.index("kenguru")) # printer 2, siden det er der den ligger.
Putter listen i motsatt rekkefølge.
dyr = ["katt", "hund", "kenguru", "elefant"]
print(dyr)
dyr.reverse()
print(dyr) # printer ut ["elefant", "kenguru", "hund", "katt"]
