0%

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