Ordbok (dict)
Lagrer verdier under navngitte nøkler (nøkkel → verdi), f.eks. en ball som {x, y, farge}. Grunnlag fra IT1 — og broen inn til klasser.
Slik kan du tenke om det
- Slå opp på navn, ikke på plass I ei liste spør du «hva står på plass 2?»; i ei ordbok spør du «hva står under nøkkelen alder?». Nøkkelen er adressen, så rekkefølgen betyr ingenting. En ordbok som samler flere navngitte egenskaper om én ting, er nesten et objekt.
Vanlige feil
- Du tror oppslag på en nøkkel som mangler gir 0 eller None En ordbok slår opp på navngitt nøkkel, ikke på posisjon. Slår du opp en nøkkel som ikke finnes med p["z"], hopper Python ikke bare over den og gir verken 0 eller None — du får en KeyError og programmet stopper. Vil du ha en trygg standardverdi når nøkkelen kan mangle, bruker du p.get("z", standardverdi).
- Du tror sammenligning ignorerer store og små bokstaver For Python er «Oslo» og «oslo» to forskjellige strenger. Det gjelder både `==`, `in` og oppslag i en ordbok: `rad["Alder"]` finner ikke nøkkelen `"alder"`. Skal du sammenligne tekst noen har skrevet inn, må du normalisere selv med `.lower()` — og gjerne `.strip()` for mellomrom.
- Du overskriver i stedet for å samle Når du skal samle flere verdier under samme nøkkel, skriver du d[nøkkel] = verdi i stedet for å legge til i en liste. Da erstatter hver ny verdi den forrige, og til slutt står bare den siste igjen under hver nøkkel. Det krasjer ikke — du får et svar som ser riktig ut, men som har mistet data.
Øv på dette
- Lage: spiller som ordbok
- Øving: tell stemmer med en ordbok
- Sjekk: oppslag i ordbok
- To løsninger på duplikat-jakten — hvilken skalerer?
- Sjekk: hva gir oppslag på en manglende nøkkel?
- Øving: klassen som tabell
- Øving: to butikker, ett lager
- Begrepssjekk: Lister og ordbøker
- Drill: Datasett (øvet)
- Kodeløype: Lister og ordbøker
- Drill: Datasett (utfordring)
- Drill: Datasett — skriv koden
- Drill: Lister og ordbøker (grunnleggende)
- Drill: Lister og ordbøker (øvet)
- Drill: Lister og ordbøker (utfordring)
- Kodeløype: Ordbøker i dybden
- Kodeløype: Ordbøker satt sammen
- Kodeløype: Lister og ordbøker — mønstrene
- Drill: Lister og ordbøker — skriv selv (øvet)
- Drill: Lister og ordbøker — skriv selv (utfordring)
- Liste eller ordbok? Velg og begrunn
- Lineært søk, eller bygg et oppslag først?
- Telle stemmer: liste eller ordbok?
- Eksamenstrening S4: dataanalyse