Introduksjon
Dette er en kort oppgave som viser hvordan man bruker ordbøker.
Nøkler og verdier
En ordbok (dictionary på engelsk) brukes for å lagre nøkkel/verdi-par. Tenk
deg at du skal ha en norsk-engelsk ordbok. Da vil nøkkelen være ordet du slår
opp på, for eksempel det norske ordet. Verdien vil være det engelske ordet.
F.eks. nøkkelen "ost" og verdien "cheese". I Python skrives ordbøker med {} slik som dette:
>>> d = {'ost':'cheese', 'brød':'bread'}
>>> d
{'ost': 'cheese', 'brød': 'bread'}
I eksempelet over lagde vi en norsk-engelsk ordbok til variabelen d. Nøkkel og
verdi har et kolon : mellom seg, og 'nøkkel':'verdi'-parene skilles med ,.
For å slå opp på en nøkkel, bruker vi [nøkkel], slik som dette:
>>> d['ost']
'cheese'
Vi kan bruke den samme skrivemåten for å lage nye nøkkel/verdi-par eller endre verdien knyttet til en nøkkel:
>>> d['farge'] = 'colour'    # legger til en ny verdi
>>> d
{'ost': 'cheese', 'brød': 'bread', 'farge': 'colour'}
>>> d['farge'] = 'color'     # endrer verdien
>>> d
{'ost': 'cheese', 'brød': 'bread', 'farge': 'color'}
En tom ordbok opprettes slik:
>>> d = {}
>>> d
{}
Merk: Bare tekst og tall kan brukes som nøkler, men verdiene kan være hva som helst: strenger, tall, lister, ordbøker, funksjoner, osv.
Vi skal nå skrive et program som lar en bruker lage en ordbok. Programmet skal ta i mot 3 nøkkel/verdi-par, deretter be om en nøkkel å slå opp på og til slutt vise hvilken verdi som tilhører nøkkelen. Det skal fungere slik:
Skriv inn en nøkkel: ost Skriv inn en verdi: cheese Skriv inn en nøkkel: brød Skriv inn en verdi: bread Skriv inn en nøkkel: farge Skriv inn en verdi: color Hvilken nøkkel vil du slå opp på? brød Tilhørende verdi er bread
Dette må du gjøre:
- 
Lag ei tom ordbok.
 - 
Bruk ei løkke for å hente inn 3 nøkkel/verdi-par.
- Lagre nøkkel/verdi-parene i ordboka.
 
 - 
Spør om en nøkkel.
 - 
Skriv ut verdien som hører til nøkkelen.
 
Gå igjennom ordbøker
Du kan bruke en løkke til å hente ut nøklene til en ordbok:
>>> d = {'brød': 3, 'ost': 1}
>>> for key in d:
...     print("Nøkkel:", key)
...     print("Verdi:", d[key])
...
Nøkkel: ost
Verdi: 1
Nøkkel: brød
Verdi: 3
Dersom du bare trenger verdiene kan du bruke d.values():
>>> for val in d.values():
...     print("Verdi:", val)
...
Verdi: 1
Verdi: 3
Dersom du ønsker få tilgang til både nøkkel og verdi kan du bruke d.items():
>>> for key, value in d.items():
...     print(key, value)
...
ost 1
brød 3
Vi skal nå lage et handleliste-program som lar brukeren velge hva og hvor mye som skal være på handlelista. Programmet skal se slik ut:
Skriv en gjenstand: brød Hvor mange? 2 Skriv en gjenstand: tomat Hvor mange? 5 Skriv en gjenstand: Her er handlelista: 2 brød 5 tomat
Dette må du gjøre:
- 
Ta imot input for gjenstand.
 - 
Så lenge gjenstanden ikke er en tom streng
"":- Be om antall.
 - Lagre til en ordliste.
 - Bruk gjenstanden som nøkkel og antallet som verdi.
 
 - 
Skriv ut handlelista.
Hint: Gå gjennom nøklene.
 


