Ordbøker

Erfaren
Python

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.

Forbedre denne siden

Funnet en feil? Kunne noe vært bedre? Hvis ja, vennligst gi oss tilbakemelding ved å lage en sak på Github eller fiks feilen selv om du kan. Vi er takknemlige for enhver tilbakemelding!

Rapporter et problemVis koden og fiks selv