Een lijst getallen kunnen we ook via een woordenboek voorstellen, waarbij de index in de lijst de sleutel
vormt, en de bijhorende waarde de elementwaarde op die positie vormt. Voor een lange lijst gehele getallen
die een groot aantal keer hetzelfde getal $$n$$ bevat, kan het
interessant deze lijst als woordenboek voor te stellen. Hierbij hoeven we enkel de waarden verschillend van $$n$$
te stockeren, en nemen we als defaultwaarde voor het woordenboek de waarde $$n$$.
Schrijf een functie comprimeer()
met als enig argument een lijst gehele getallen. Het resultaat is een
tuple bestaande uit het woordenboek en de defaultwaarde. Kies hierbij als defaultwaarde het getal dat het vaakst in de
originele lijst voorkomt. Zijn meerdere getallen hiervoor kandidaat, neem dan het kleinste getal.
v = [0, 0, 0, 1, 1, 0, 0, 0, 2, 0, 0, 0, 3] w = [1, 2, 0, 1, 2, 8, 1, 2, 7, 1, 2, 5, 1, 2] x = [-3, -1, 5, -1, 2, 5, -1, 2, 7, -1, 2, 5, -1, 2] comprimeer(v) = ({8: 2, 12: 3, 3: 1, 4: 1}, 0) comprimeer(w) = ({1: 2, 2: 0, 4: 2, 5: 8, 7: 2, 8: 7, 10: 2, 11: 5, 13: 2}, 1) comprimeer(x) = ({0: -3, 2: 5, 4: 2, 5: 5, 7: 2, 8: 7, 10: 2, 11: 5, 13: 2}, -1)