Lister i Python
Lister er en datatype i Python, og er "beholdere" som inneholder elementer i en bestemt rekkefølge.
Oppretting av lister
Ei liste opprettes ved at man omslutter elementer, skilt med komma, med klammeparentes []. For eksempel, hvis man vil skrive ei liste med tallene 1, 2 og 3 skriver man:
Lister kan blant annet inneholde heltall, desimaltall, ord og andre lister. Hvis du har ord eller setninger i en liste kan du velge mellom å sette dem i enten doble eller enkle hermetegn - det har ingenting å si, så lenge det er samme type hermetegn først og sist.
Vi kan bruke ei for-løkke til å bevege oss gjennom alle elementene i ei liste:
Løkkevariabelen, som vi her har kalt dyr, vil få hvert av elementene i lista kattedyr etter tur, som skrives ut til skjermen.
Legge til elementer i lister
Det er mange innebygde funksjoner knytta til lister. For å bruke dem skriver man navnet på lista etterfulgt av et punktum, og deretter navnet på funksjonen man ønsker å bruke.
Som et eksempel skal vi se på hvordan man legger til et element i ei liste ved hjelp av funksjonen .append(). La oss legge til tallet 4 i lista tall_liste:
Merk at med .append()-funksjonen skriver vi:
<listenavn>.append(<Det som skal legges til til slutt>)
Vi kan også legge til elementer i ei liste i løkker. Her er et eksempel der vi regner ut de ti første kvadrattallene, og lagrer dem i lista kvadrattall:
Oppgave: Yatzykast
Skriv et program som kaster fem terninger og lagrer dem i ei liste, og også regner ut summen av terningene med funksjonen sum().
Trekke elementer fra lister
Python-biblioteket Random har en funksjon som lar oss trekke et tilfeldig element fra ei liste, nemlig funksjonen choice():
Tidligere har vi laget "jukseterninger" ved hjelp av tilfeldige tall og vilkår:
Vi kan også bruke lister og choice-funksjonen til å lage vektede terninger:
Oppgave: Par i seks
Simuler terningkast med vektet terning for å finne sannsynligheten for å få par i seks med to slike terninger
Listeindeksering
For å skrive ut et element med en bestemt indeks skriver man navnet på liste-objektet, etterfulgt av en klammerparentes [] med indeksnummeret inni. Det som er litt forvirrende i Python, er at det første elementet har indeks 0, det andre har indeks 1, og så videre. Indeksen til det siste elementet blir derfor én mindre enn antall elementer i lista.
For eksempel, hvis du vil hente ut det tredje elementet i ei liste som heter elementer, skriver du elementer[2].
I den siste linja brukte vi indeksnummer -1, som printer ut det siste elementet i ei liste. Dette er nyttig hvis man ikke vet hvor mange elementer det er i lista, men skal ha det siste. Det nest siste elementet har indeks -2, det tredje siste har -3 og så videre.
Oppgave: Fibonacci
Fibonaccitallene er den berømte tallrekka
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ...
der de to første tallene er 0 og 1, og hvert påfølgende tall er summen av de to foregående. Tallrekka dukker overraskende ofte opp i både matematikk og biologi.
Bruk ei for-løkke til å lagre de 30 første Fibonacci-tallene i ei liste.
Hint
Her kan du få bruk for liste-funksjonen .append(), og at man indeksere i lister baklengs (bakerste element har indeks -1, nest bakerste har -2 osv.)