Du overskriver i stedet for å samle
Handler om: Ordbok (dict)
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.
Eksempel
Du grupperer elever etter transportmiddel. Ada og Liv tar begge bussen, men til slutt står {'buss': 'Liv'} — Ada ble skrevet over, uten en eneste feilmelding.
Slik tenker du riktig om det
Skill «sett verdien» fra «legg til i verdien». `=` bytter ut det som lå der; `.append(...)` lar det ligge og legger en til. Skal nøkkelen holde FLERE ting, må verdien være en liste — og da må lista finnes før du kan legge noe i den.
Slik ser det ut i kode
Slik gikk det galt
grupper = {}
for navn, transport in reiser:
grupper[transport] = navn # erstatter den forrige Slik fikser du det
grupper = {}
for navn, transport in reiser:
if transport not in grupper:
grupper[transport] = [] # lag lista foerst
grupper[transport].append(navn)