Werken met geneste dictionaries
Een dictionary kan als waarde van een sleutel een andere dictionary bevatten. Dit is een veelgebruikte manier om herhalende datastructuren op te slaan, zoals jaarlijkse, maandelijkse of wekelijkse data. Dezelfde regels gelden voor het aanmaken en benaderen van de dictionary.
Stel dat je een dictionary hebt met een rangschikking van mijn koekjesconsumptie per jaar en type koekje. Die zou er zo uit kunnen zien: cookies = {'2017': {'chocolate chip': 483, 'peanut butter': 115}, '2016': {'chocolate chip': 9513, 'peanut butter': 6792}}. Ik kan opvragen hoeveel chocolatechipkoekjes ik in 2016 at met cookies['2016']['chocolate chip'].
Als je een nieuwe dictionary verkent, is het handig om de methode .keys() te gebruiken om een idee te krijgen van welke data beschikbaar is. Je kunt ook over een dictionary itereren; dan krijg je elke sleutel terug die je binnen de lus kunt gebruiken.
We hebben een dictionary squirrels_by_park geladen met parknamen als sleutels en een geneste dictionary met gegevens over eekhoorns.
Deze oefening maakt deel uit van de cursus
Datatypen in Python
Oefeninstructies
- Print de sleutels van de dictionary
squirrels_by_park. LET OP: Dit zijnpark_names. - Print de sleutels van de dictionary
squirrels_by_parkvoor de park_nameUnion Square Park. - Loop over de dictionary
squirrels_by_park.- Print binnen de lus op een veilige manier de
park_nameen dehighlights_in_fur_color. Print'N/B'als highlightsinfur_color niet gevonden wordt of None is.
- Print binnen de lus op een veilige manier de
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# Print a list of keys from the squirrels_by_park dictionary
print(____)
# Print the keys from the squirrels_by_park dictionary for 'Union Square Park'
print(____)
# Loop over the dictionary
for park_name in squirrels_by_park:
# Safely print the park_name and the highlights_in_fur_color or 'N/A'
print(park_name, squirrels_by_park[____].____('____', '____'))