Deze oefening heeft als doel om de basishandelingen met dictionary en set in te oefenen.
We werken opnieuw met een puntenlijst, maar deze keer in de vorm van een dictionary.
Elk element in de lijst heeft als key een naam en als value een cijfer. We gaan ervan uit dat de namen uniek zijn (geen twee studenten met dezelfde naam).
Voorbeeld: puntenlijst = {'jan': 19, 'wim': 12, 'sonja': 8, 'karen': 18, 'olga': 19, 'marcel': 7}
namenlijst
Schrijf een functie namenlijst met één argument: een puntenlijst als dictionary zoals hierboven gedefineerd.
De functie retourneert een alfabetisch geordende lijst met alle namen uit de puntenlijst.
cijfer_aanpassen
Schrijf een functie cijfer_aanpassen met drie argument: i) een puntenlijst als dictionary zoals hierboven gedefineerd, ii) de naam van een student en iii) een cijfer (getal tussen 0 en 20).
De functie past het cijfer van de opgegeven student aan. Als de student niet voorkomt in de dictionary, dan wordt die toegevoegd met het opgegeven cijfer.
transformeer
Schrijf een functie transformeer met één argument: een puntenlijst als dictionary zoals hierboven gedefineerd.
De functie retourneert de dictionary waarbij elke naam met een hoofdletter gezet wordt en het cijfer (score op 20) omgerekend wordt naar een percentage.
gegroepeerd
Schrijf een functie gegroepeerd met één argument: een dictionary zoals hierboven gedefineerd.
De functie retourneert een dictionary met als keys de behaalde cijfers. Voor elk cijfer is de value een set met alle studenten die dit cijfer behaalden.
afwijkingen
Schrijf een functie afwijkingen met één argument: een dictionary zoals hierboven gedefineerd.
De functie retourneert een geneste dictionary. Voor elke student komt een dictionary met twee elementen: "Cijfer" en "Afwijking". De afwijking is het verschil tussen het behaalde cijfer en het gemiddelde van de groep (positief als de student boven het gemiddelde scoort, negatief als hij onder het gemiddelde scoort). De afwijking is een floating point getal dat niet afgerond wordt.
>>> namenlijst({'jan': 19, 'wim': 12, 'sonja': 8, 'karen': 18, 'olga': 19, 'marcel': 7}) ['jan', 'karen', 'marcel', 'olga', 'sonja', 'wim'] >>> transformeer({'jan': 19, 'wim': 12, 'sonja': 8, 'karen': 18, 'olga': 19, 'marcel': 7}) {'Jan': 95, 'Wim': 60, 'Sonja': 40, 'Karen': 90, 'Olga': 95, 'Marcel': 35} >>> cijfer_aanpassen({'jan': 19, 'wim': 12, 'sonja': 8, 'karen': 18, 'olga': 19, 'marcel': 7}, 'els', 20) {'jan': 19, 'wim': 12, 'sonja': 8, 'karen': 18, 'olga': 19, 'marcel': 7, 'els': 20} >>> gegroepeerd({'jan': 19, 'wim': 12, 'sonja': 8, 'karen': 18, 'olga': 19, 'marcel': 7}) {7: {'marcel'}, 8: {'sonja'}, 12: {'wim'}, 18: {'karen'}, 19: {'jan', 'olga'}} >>> afwijkingen({'jan': 19, 'wim': 12, 'sonja': 8, 'karen': 18, 'olga': 19, 'marcel': 7}) {'jan': {'Cijfer': 19, 'Afwijking': 5.166666666666666}, 'wim': {'Cijfer': 12, 'Afwijking': -1.833333333333334}, 'sonja': {'Cijfer': 8, 'Afwijking': -5.833333333333334}, 'karen': {'Cijfer': 18, 'Afwijking': 4.166666666666666}, 'olga': {'Cijfer': 19, 'Afwijking': 5.166666666666666}, 'marcel': {'Cijfer': 7, 'Afwijking': -6.833333333333334}}