Door een dictionary loopen
Je kunt dictionaries maken en waardes opzoeken met een sleutel. In deze les leer je hoe je door een dictionary loopt en hoe je veilig controleert of een sleutel bestaat.
Door sleutels loopen
Een simpele for-loop op een dictionary geeft je de sleutels:
leerling = {"naam": "Sara", "leeftijd": 15, "klas": "3B"}
for sleutel in leerling:
print(sleutel)
Uitvoer:
naam
leeftijd
klas
Door sleutels én waardes loopen — .items()
Wil je beide tegelijk? Gebruik .items():
for sleutel, waarde in leerling.items():
print(f"{sleutel}: {waarde}")
Uitvoer:
naam: Sara
leeftijd: 15
klas: 3B
.items() levert elke ronde een paar op: eerst de sleutel, dan de waarde.
Bestaat de sleutel? — in-operator
Met in check je of een sleutel in de dictionary zit. Dat voorkomt een KeyError:
if "naam" in leerling:
print(leerling["naam"])
else:
print("Geen naam bekend.")
Probeer zelf
Maak een dictionary prijzen = {"appel": 0.50, "banaan": 0.30} en loop er met .items() doorheen om elke prijs te printen.
prijzen = {...}
for ... in ...:
print(f"...")✅ Oplossing
prijzen = {"appel": 0.50, "banaan": 0.30}
for product, prijs in prijzen.items():
print(f"{product}: € {prijs}")
Predict
Wat print dit programma?
voorraad = {"appel": 5, "banaan": 0, "kers": 12}
for product, aantal in voorraad.items():
if aantal > 0:
print(f"{product} op voorraad ({aantal})")
else:
print(f"{product} is uitverkocht")
Bekijk het antwoord
appel op voorraad (5)
banaan is uitverkocht
kers op voorraad (12)
In elke ronde krijg je een product-aantal-paar. De if kiest het juiste bericht op basis van het aantal.
Run
Voer de code uit en controleer.
Investigate
Wat geeft de in-operator terug? Probeer dit:
leerling = {"naam": "Sara", "klas": "3B"}
print("naam" in leerling)
print("school" in leerling)
print("3B" in leerling)
Bekijk het antwoord
True
False
False
in controleert sleutels, niet waardes. "3B" is een waarde (geen sleutel), dus de uitkomst is False.
Er gaat iets mis
leerling = {"naam": "Sara"}
print(leerling["school"])
Foutmelding:
KeyError: 'school'
Waarom? De sleutel "school" bestaat niet. Python stopt direct met uitvoeren — daar zit geen else-tak achter.
Oplossing: Check eerst met in:
if "school" in leerling:
print(leerling["school"])
else:
print("Geen school bekend.")
Modify
Pas de code aan zodat hij elke sleutel en waarde print met .items() en een f-string.
profiel = {"naam": "Alex", "leeftijd": 15, "hobby": "muziek"}
for sleutel in profiel:
print(sleutel)💡 Tip
Vervang for sleutel in profiel: door for sleutel, waarde in profiel.items():. Print dan een f-string met beide.
✅ Oplossing
profiel = {"naam": "Alex", "leeftijd": 15, "hobby": "muziek"}
for sleutel, waarde in profiel.items():
print(f"{sleutel}: {waarde}")
Make: Profielprinter
Maak een dictionary profiel met minstens 5 sleutels over jezelf. Loop met .items() over de dictionary en print elke regel netjes.
Verwachte uitvoer:
=== Mijn Profiel ===
naam: Alex
leeftijd: 15
hobby: muziek
stad: Amsterdam
favoriete eten: pasta
====================
profiel = {
"naam": "Alex",
"leeftijd": 15,
"hobby": "muziek",
"stad": "Amsterdam",
"favoriete eten": "pasta"
}
print("=== Mijn Profiel ===")
for ... in profiel.items():
print(f" ...")
print("====================")💡 Tip
for sleutel, waarde in profiel.items(): — print met indent: f" {sleutel}: {waarde}".
✅ Oplossing
profiel = {
"naam": "Alex",
"leeftijd": 15,
"hobby": "muziek",
"stad": "Amsterdam",
"favoriete eten": "pasta"
}
print("=== Mijn Profiel ===")
for sleutel, waarde in profiel.items():
print(f" {sleutel}: {waarde}")
print("====================")
Make Bonus: Digitaal winkelmandje
Dit is de eindbaas van de basiscursus! Bouw een winkelmandje met een dictionary van producten en prijzen. Schrijf een functie bereken_totaal(winkel, mandje) die met .items() door het mandje loopt en de totaalprijs teruggeeft met return.
Je combineert hier alles wat je geleerd hebt: dictionaries, .items(), for-loops, functies, parameters, return en f-strings.
# De winkel: product -> prijs
winkel = {
"Brood": 2.50,
"Kaas": 4.00,
"Melk": 1.20,
"Appel": 0.80,
"Chocola": 3.50
}
# Het mandje: product -> aantal
mandje = {
"Brood": 2,
"Melk": 1,
"Chocola": 3
}
def bereken_totaal(winkel, mandje):
totaal = 0
for product, aantal in mandje.items():
# Zoek de prijs op in de winkel-dictionary
# Reken uit: prijs * aantal
# Tel het op bij totaal
...
return totaal
# Print een kassabon
print("=== Kassabon ===")
for product, aantal in mandje.items():
prijs = winkel[product]
print(f" {product} x{aantal} -> {prijs * aantal} euro")
print("================")
print(f"Totaal: {bereken_totaal(winkel, mandje)} euro")💡 Tip
Drie stappen binnen de loop:
prijs = winkel[product]— zoek de prijs op.regel = prijs * aantal— bereken de regelprijs.totaal += regel— tel op bijtotaal.
✅ Oplossing
def bereken_totaal(winkel, mandje):
totaal = 0
for product, aantal in mandje.items():
prijs = winkel[product]
totaal += prijs * aantal
return totaal
Je hebt nu de basis van Python onder de knie: variabelen, rekenen, tekst, beslissingen, herhaling, functies, lijsten en dictionaries. Hiermee kun je écht programma's bouwen. Tijd om iets eigens te verzinnen!