Oppgave 9
9 a) Fokus i oppgaven: Lister
Lister brukes for å lagre flere objekter i én enkelt variabel. For eksempel kan vi lagre en liste med sørlandsbyer på denne måten:
sorlandsbyer = ["Lillesand", "Kristiansand", "Arendal", "Tvedestrand", "Mandal"]
Åpenbart mangler Grimstad i lista over sørlandsbyer. Lag en ny python-fil og legg inn listen med sørlandsbyer. Lister har en tilhørende funksjon som heter append(). Undersøk hvordan denne funksjonen fungerer og bruk den til å få Grimstad med i lista med sørlandsbyer. Bruk print-funksjonen for å sjekke om lista er komplett.
Løsningsforslag
sorlandsbyer = ["Lillesand", "Kristiansand", "Arendal", "Tvedestrand", "Mandal"]
sorlandsbyer.append("Grimstad")
print(sorlandsbyer)
>>> sorlandsbyer = ["Lillesand", "Kristiansand", "Arendal", "Tvedestrand", "Mandal", "Grimstad"]
Lister er ordnet i den rekkefølgen elementene er lagt til. For eksempel er “Lillesand” det 0’te elementet i lista sorlandsbyer (i Python teller vi fra 0). Arendal blir dermed element nummer 2. For å få tilgang på elementer i en liste, bruker vi følgende syntaks:
sorlandsbyer = ["Lillesand", "Kristiansand", "Arendal", "Tvedestrand", "Mandal"]
print(sorlandsbyer[0])
>>> Lillesand
print(sorlandsbyer[2])
>>> Arendal
Vi kan også telle baklengs i lister for å få tak i elementer. Da bruker vi negativ indeks der -1 er det siste elementet i lista. For eksempel er “Tvedestrand” det nest siste elementet og vi kan få tak i Tvedestrand ved hjelp av indeksen -2:
sorlandsbyer = ["Lillesand", "Kristiansand", "Arendal", "Tvedestrand", "Mandal"]
print(sorlandsbyer[-2])
>>> Tvedestrand
Oppgave 9 b) Fokus i oppgaven: elementer i lister
liste = [5, 13, 7, 14, 8, 19, 17, 3, 3, 6, 13, 7, 19, 8, 6, 1, 15, 12, 13, 15]
i) Lag en python-fil med lista over og lag en funksjon som printer “15 er med i lista” hvis 15 er i lista og “15 er ikke med i lista” ellers.
Hint: Her er det mulig å kombinere while
og len()
fra tidligere oppgaver. En annen, enklere, løsning er å bruke en for-løkke.
ii) Utvid funksjonen slik at funksjonen tar inn et vilkårlig tall ‘n’. Print en tilsvarende melding som i oppgave i).
Forventet resultat
liste = [5, 13, 7, 14, 8, 19, 17, 3, 3, 6, 13, 7, 19, 8, 6, 1, 15, 12, 13, 15]
er_med_i_liste(4)
>>> 4 er ikke med i lista
er_med_i_liste(14)
>>> 14 er med i lista.
iii) Utvid funksjonen slik at den i tillegg printer hvor i lista elementet er.
Forventet resultat
liste = [5, 13, 7, 14, 8, 19, 17, 3, 3, 6, 13, 7, 19, 8, 6, 1, 15, 12, 13, 15]
er_med_i_liste(4)
>>> 4 er ikke med i lista
er_med_i_liste(14)
>>> 14 er med i lista. Du finner den på plass nummer 3.
er_med_i_liste(3)
>>> 3 er med i lista. Du finner den på plass nummer 7 og 8.
Oppgave 9 c)
Lag en funksjon som tar inn en vilkårlig liste med tall og printer gjennomsnittet.
Forventet resultat
liste1 = [5, 13, 7, 14, 8, 19, 17, 3, 3, 6, 13, 7, 19, 8, 6, 1, 15, 12, 13, 15]
gjennomsnitt(liste1)
>>> Gjennomsnittet er 10.2.
liste2 = [-9, 10, 1, 14, 6, 6, -10, 3, -5, 20, -6, -8, 8, 7, 13, 14, -4, 7, 16, 0, -3]
gjennomsnitt(liste2)
>>> Gjennomsnittet er 3.8095238095238093.
liste3 = [90, 58, 34, 17, 30, 61, 42, 21, 14, -8, 41, 14, 89, 77, 70, 78, 59, 92, 4, 73, 64, 78, 59, 90, 61, -4, -9, 36]
gjennomsnitt(liste3)
>>> Gjennomsnittet er 47.535714285714285.