👀 Voorbeeld - Totaal aantal studenten tellen
Het aantal unieke nationaliteiten tellen is heel eenvoudig met de
len()
functie. Samantha wil ook het totale aantal studenten kennen. Daarvoor kan ze eenfor
-lus gebruiken. Er zijn vier mogelijke manieren om over een map te itereren. Probeer ze allemaal grondig uit in de sandbox.
Manier 1
Itereer als volgt over alle sleutels
for nationaliteit in studenten:
Zo kan Samantha als volgt het totaal aantal studenten tellen:
def totaal(studenten): aantal = 0 # voor elke sleutel in de map for nationaliteit in studenten: # verhoog het aantal met het aantal van deze nationaliteit aantal += studenten[nationaliteit] return aantal print(totaal({ 'Frans': 4, 'Boliviaans': 2 })) print(totaal({ 'Frans': 4, 'Boliviaans': 2, 'Duits': 1, 'Chinees': 2, 'Canadees': 3 }))
Manier 2
Itereer als volgt over alle sleutels
for nationaliteit in studenten.keys():
Zo kan Samantha als volgt het totaal aantal studenten tellen:
def totaal(studenten): aantal = 0 # voor elke sleutel in de map for nationaliteit in studenten.keys(): # verhoog het aantal met het aantal van deze nationaliteit aantal += studenten[nationaliteit] return aantal print(totaal({ 'Frans': 4, 'Boliviaans': 2 })) print(totaal({ 'Frans': 4, 'Boliviaans': 2, 'Duits': 1, 'Chinees': 2, 'Canadees': 3 }))
Zie je het verschil met de eerste manier?
Manier 3
Itereer als volgt over alle waarden
for aantal in studenten.values():
Zo kan Samantha als volgt het totaal aantal studenten tellen:
def totaal(studenten): totaal_aantal = 0 # voor elke waarde in de map for nationaliteit_aantal in studenten.values(): # verhoog het aantal met het aantal van deze nationaliteit totaal_aantal += nationaliteit_aantal return totaal_aantal print(totaal({ 'Frans': 4, 'Boliviaans': 2 })) print(totaal({ 'Frans': 4, 'Boliviaans': 2, 'Duits': 1, 'Chinees': 2, 'Canadees': 3 }))
Manier 4
Itereer over *sleutels en waarden** tegelijk:
for (nationaliteit, nationaliteit_aantal) in studenten.items()
Dan telt Samantha het totaal aantal studenten zo: def totaal(studenten):
totaal_aantal = 0 # voor elke sleutel en waarde in de map for (nationaliteit, nationaliteit_aantal) in studenten.items(): # verhoog het aantal met het aantal van deze nationaliteit totaal_aantal += nationaliteit_aantal return totaal_aantal print(totaal({ 'Frans': 4, 'Boliviaans': 2 })) print(totaal({ 'Frans': 4, 'Boliviaans': 2, 'Duits': 1, 'Chinees': 2, 'Canadees': 3 }))
💻 Programmeeroefening - Studenten tellen
- Schrijf een functie
aantal_studenten(studenten)
. De functie neemt één parameter:studenten
.- Dat is een map van uitwisselingsstudenten, met de nationaliteiten als sleutels en de aantallen als waarde.
- De functie retourneert een integer, die het totale aantal studenten in de map weergeeft.
Je mag zelf kiezen op welke manier je dit aanpakt.