Information

Author(s) Sam Pieters
Deadline No deadline
Submission limit No limitation

Sign in

Dictionary


Question 1: Maak een dictionary

Maak een dictionary mensen. De dictionary bevat een id als key (startende vanaf 1), en als item een nieuwe dictionary die de naam en leeftijd bevat van de volgende mensen (in volgorde):

  • John Doe, 20 jaar
  • Jane Doe, 23 jaar
Question 2: Voeg een item toe

Gegeven de dictionary die je in Oefening 1 hebt gemaakt, voeg nu richting toe voor de twee personen. De richting van John Doe is informatica en Jane Doe is wiskunde.

Question 3: Toegang tot dictionary waarden

De mensen in de dictionary mensen hebben nu ook een waarde voor land. Schrijf een programma dat voor elke persoon het land print.

Question 4: Word counter (a)

Schrijf een functie tel_woorden die een lijst van woorden krijgt en een dictionary teruggeeft (sleutel = woord en waarde = het aantal keer dat het woord voorkomt). Er wordt geen output getoond op het scherm.

Je kan dit ook eens testen met een grote file. Download alice.txt (Blackboard -> Inleiding tot programmeren -> Practica) en plaats het in dezelfde map als je main.py. Het bevat het volledige verhaal van "Alice in Wonderland" zonder leestekens en in kleine letters. Je zet dan het volgende bovenaan je code:

with open("./alice.txt", "r") as bestand:
    woorden = bestand.read().split()

De variabele woorden geeft nu een lijst terug van alle woorden in het alice bestand. Voor je inzending in Inginious moet je enkel de functie tel_woorden insturen, de test-code doet de rest!

Question 5: Word counter (b)

Schrijf een functie print_frequenties die als input de dictionary krijgt uit de vorige oefening en alle woorden afdrukt met de bijhorende frequentie. Pas je functies toe op "Alice in Wonderland". De eerste 10 lijnen van de output zien er als volgt uit:

project: 87
gutenbergs: 2
alices: 17
adventures: 11
in: 428
wonderland: 8
by: 76
lewis: 4
carroll: 4
this: 181

Je moet je functie uit de vorige oefening niet opnieuw schrijven, Inginious gebruikt voor deze code ook jouw code van de vorige vraag.

Question 6: Een dictionary maken van een lijst

Schrijf een functie list2dict die twee lijsten krijgt en er een dict van maakt. De eerste list bevat de keys, de tweede de waarden. Als er iets mis is, geef je None terug. Gebruik geen ingebouwde functies zoals zip.

>>> list2dict(['Ten', 'Twenty', 'Thirty'],[10, 20, 30])
>>> {'Ten': 10, 'Twenty': 20, 'Thirty': 30}
Question 7: Minigolf

De proffen hebben besloten om op een namiddag minigolf te spelen. Ze hebben hun scores bijgehouden in een dictionary, waarbij de key de naam van een prof is en de value een lijst van het aantal slagen dat ze nodig hadden per hole. Schrijf een functie bepaal_winnaar die de naam teruggeeft van de winnaar. Let op: de winnaar is degene van wie de som van de punten bij alle holes het laagste is.

Bijvoorbeeld:

punten = { "Calders": [2, 4, 3, 2, 3, 4, 4, 4, 3, 3], # Som is 32 "Hofkens": [3, 3, 2, 4, 2, 4, 3, 3, 4, 3], # Som is 31 "Laenens": [2, 3, 4, 2, 3, 4, 4, 3, 4, 3], # Som is 32 "Symens": [2, 3, 2, 4, 2, 2, 3, 2, 2, 4], # Som is 26 }

>>> print(bepaal_winnaar(punten))
>>> Symens