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.

Argumenten

Een lijst gehele getallen.

Resultaat

Een tuple met twee elementen, namelijk het gezochte woordenboek en de gezochte defaultwaarde.

Voorbeeld

 
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)