Dictionaries en andere verzamelingen · oefening
Doorloop een dictionary
Een dictionary kan meer paren bevatten dan je één voor één wilt behandelen. Als een lus elk label en de bijbehorende waarde samen nodig heeft, geeft .items() je precies dat paar.
ratings = {
"Kindred": 5,
"Earthsea": 5,
"Dune": 4,
}
Vraag elk label-waardepaar op
Gebruik .items() wanneer elke ronde zowel de sleutel als de waarde nodig heeft:
for title, rating in ratings.items():
print(f"{title}: {rating}")
Elk item is een paar van twee delen dat een tuple wordt genoemd. Python wijst het eerste deel toe aan title en het tweede aan rating. Dit heet uitpakken. Je hoeft dat hier alleen te herkennen: .items() levert een paar en de twee lusnamen ontvangen de twee delen.
Je hoeft geen abstracte regel te onthouden. Lees de luskop als:
Voor elke titel en beoordeling in de items van de dictionary…
Een gewone lus zoals for title in ratings: bezoekt alleen de sleutels. Dat is soms handig, maar die kan niet beide namen in de luskop van deze les vullen. Hier hebben we .items() nodig, omdat het rapport beide delen gebruikt.
Je hebt in elke ronde van de lus zowel de titel als de beoordeling nodig. Welke luskop past daarbij?
Opdracht
Doorloop de dictionary ratings met .items().
Voor elke titel en beoordeling:
druk een regel af in de vorm
Kindred: 5;tel de beoordeling op bij
total.
Druk na de lus Total: 14 af.
Verwachte uitvoer:
Kindred: 5
Earthsea: 5
Dune: 4
Total: 14