Introduksjon
Denne oppgaven handler om lister, altså å samle flere ting i en og samme variabel. Ettersom lister og løkker henger tett sammen i Python, bør du se på løkker i repetisjonsoppgaven dersom du har glemt hvordan løkker fungerer.
Hvordan lage lister?
Hver ting i en liste kalles et element. En liste lages ved å skrive elementer
inni [], med , mellom elementene:
>>> lst = ['egg', 'ham', 'spam']
>>> lst
['egg', 'ham', 'spam']
Vi har nå ei liste som inneholder ordene 'egg', 'ham' og 'spam'.
Vanskeligere er det ikke! Vi kan også lage tomme lister:
>>> lst = []
>>> lst
[]
Ei liste kan inneholde alt mulig - tall, strenger og også andre lister:
>>> lst = [ 3, 'komma', [1 , 4] ]
>>> lst
[3, 'komma', [1, 4]]
Legge til og fjerne elementer
Hva om vi ønsker å legge til eller fjerne elementene fra lista vi vår? Da kan vi bruke de
to funksjonene lst.append(elm) og lst.remove(elm), der
lst er lista og elm er elementet vi ønsker å legge til eller fjerne.
lst.append(elm) legger til elm på slutten av lst, slik som illustrert i
eksempelet:
>>> lst = []
>>> lst.append('Per')
>>> lst
['Per']
>>> lst.append('Ada')
>>> lst.append('Kim')
>>> lst
['Per', 'Ada', 'Kim']
lst.remove(elm) sletter det første elementet elm fra lst. Det vil si at
dersom elm ligger flere ganger i lst slettes bare det første elementet lik
elm:
>>> lst = ['Per', 'Ada', 'Kim', 'Ada']
>>> lst.remove("Ada")
>>> lst
['Per', 'Kim', 'Ada']
Vi skal nå lage et handleliste-program. Programmet skal be brukeren skrive inn
matvarer, og deretter skrive ut matvarene når ferdig skrives inn. Programmet
skal fungere slik:
>>> Skriv inn en gjenstand: ost Skriv inn en gjenstand: melk Skriv inn en gjenstand: brød Skriv inn en gjenstand: ferdig ost melk brød
Dette må du gjøre:
- 
Lag ei tom liste.
 - 
Be om input.
 - 
Så lenge input ikke er lik
ferdig, legg til det nye elementet i lista.Hint: Hva slags løkke kan vi bruke her?
 - 
Skriv ut hvert hvert element i lista.
Hint: Hva slags løkke kan vi bruke her?
 
Indekser
Tenk deg at vi har ei liste, og ønsker å hente ut det andre elementet i lista.
Hvordan skal vi klare det? Da bruker vi noe kalt indeks. Indeks er plassen til elementet og skrives mellom [] rett etter variabelen: lst[index]. Her er et eksempel på en liste med tall:
>>> lst = [1, 2, 3, 4, 5]
>>> lst[1]
2
Du la kanskje merke til at vi skrev 1, men fikk ut det andre elementet i
lista? Det er fordi vi begynner å telle fra 0. Dermed har det første
elementet i lista indeks 0, og det andre har indeks 1. Datamaskiner
begynner å telle på null! Du husker kanskje at det samme skjer når vi bruker range()?
>>> list(range(5))
[0, 1, 2, 3, 4]
Til nå har vi brukt for element in lst for å gå igjennom elementene i lista,
men noen ganger kan det i tillegg være praktisk å telle hvor langt vi er kommet
i lista. Til dette kan vi bruke enumerate(), som gir oss både verdien og
indeksen:
>>> lst = ['Per', 'Kim', 'Ada']
>>> for i, value in enumerate(lst):
        print(i, value)
0 Per
1 Kim
2 Ada
I eksempelet over får i verdien av indeksen, og value får verdien av
elementet. Det er nesten som ei vanlig for-løkke, men vi får indeksen i
tillegg.
Modifiser nå programmet fra forrige oppgave til å skrive ut indekser ved siden gjenstandene i handlelista. Slik skal det fungere:
>>> Skriv inn en gjenstand: ost Skriv inn en gjenstand: melk Skriv inn en gjenstand: brød Skriv inn en gjenstand: ferdig 0 ost 1 melk 2 brød
Dette må du gjøre:
- Bruk programmet fra oppgaven over.
 - Bruk 
enumeratetil for å få indeksen til hver element. - Skriv ut indeksen på samme linje som elementet i lista.
 
Indekstrening
Vi vil nå la brukeren selv velge hvor mange gjenstander som skal skrives ut. Slik som i eksempelet:
>>> Skriv inn en gjenstand: ost Skriv inn en gjenstand: melk Skriv inn en gjenstand: brød Skriv inn en gjenstand: ferdig Hvor mange gjenstander vil du skrive ut? 2 0 ost 1 melk
Dette må du gjøre:
- Begynn med programmet du allerede har.
 - Før gjenstandene skrives ut, spør om hvor mye som skal skrives ut.
 - Avbryt utskriften når antallet er lik det brukeren ba om.
 
Strenger og indekser
Vi kan også bruke indekser på strenger. For eksempel:
>>> s = "Ada"
>>> s[0]
'A'
Vi skal nå skrive et program som henter input fra brukeren og skriver ut annenhver bokstav. Det skal fungere som dette:
>>> Skriv inn en setning: Hei på deg! H i p e !
Dette må du gjøre:
- 
Hent input fra brukeren.
 - 
Bruk en løkke for å hente ut hver bokstav og dens indeks.
 - 
Hvis indeksen er et partall, skriv ut bokstaven.
Hint:
tall%2er resten avtalldelt på2, hva girtall%2nårtaller et partall? 


