Aan de slagGa gratis aan de slag

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

Cursus bekijken

Oefeninstructies

  • Print de sleutels van de dictionary squirrels_by_park. LET OP: Dit zijn park_names.
  • Print de sleutels van de dictionary squirrels_by_park voor de park_name Union Square Park.
  • Loop over de dictionary squirrels_by_park.
    • Print binnen de lus op een veilige manier de park_name en de highlights_in_fur_color. Print 'N/B' als highlightsinfur_color niet gevonden wordt of None is.

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[____].____('____', '____'))
Code bewerken en uitvoeren