👀 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 een for-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.