Candidats

Un diccionari de vots representa els vots rebuts pels candidats a l’ajuntament d’un municipi. La clau del diccionari és un string que conté el nom i cognoms del candidat i el valor és el nombre de vots. Per exemple:

{'Joan Pere Jorbina Palau':570, 'Niceto Brunildo Fornells':679,
'Mariona Puig Peix': 701, 'Adriana de Tor Quemada': 451}

Un diccionari d’ingressos representa els ingressos anuals de les persones del municipi. La clau del diccionari és un string que conté el nom i cognoms de la persona i el valor són seus ingressos anuals expressats en euros. Per exemple:

{'Mariona Puig Peix':15456, 'Arnau Osorio Lucas':27654,
 'Arnau Brigat Pelfred': 18654, 'Niceto Brunildo Fornells':14567}

Es demana que dissenyis les següents funcions en Python i les desis al fitxer candidats.py:

candidats.vots_minim(dic, minim)

Donats un diccionari de vots dic com el descrit i un nombre enter minim, retorna True si hi ha algun candidat que no hagi assolit un nombre de vots superior a minim donat i False en cas contrari. Per exemple,

>>> dic = {'Joan Pere Jorbina Palau':678,
... 'Niceto Brunildo Fornells':570, 'Mariona Puig Peix': 701,
... 'Adriana de Tor Quemada': 451}
>>> vots_minim (dic, 400)
False
>>> vots_minim (dic, 600)
True

Nota

Podeu descarregar el fitxer amb tests test_vots_minim.txt.

candidats.can_mes_votat(dic)

Donat un diccionari de vots com el descrit, retorna el nom i cognoms del candidat mes votat. Si el diccionari és buit, retorna l’string buit. Per exemple,

>>> dic = {'Joan Pere Jorbina Palau':570, 
... 'Niceto Brunildo Fornells':679, 'Mariona Puig Peix': 701,
... 'Adriana de Tor Quemada': 451}
>>> can_mes_votat(dic)
'Mariona Puig Peix'

Nota

Podeu descarregar el fitxer amb tests test_can_mes_votat.txt.

candidats.vots_ingressos(dvots, ding)

Donats un diccionari de vots dvots i un dicionari d’ingressos ding, retorna la llista dels candidats del qui es desconeix els ingressos, és a dir, els que són al diccionari de vots però no al d’ingressos. La llista retornada ha d’estar ordenada alfabèticament:

>>> dvots = {'Joan Pere Jorbina Palau':570, 
... 'Niceto Brunildo Fornells':679, 'Mariona Puig Peix': 701, 
... 'Adriana de Tor Quemada': 451}
>>> ding = {'Mariona Puig Peix':15456, 'Arnau Osorio Lucas':27654, 
... 'Arnau Brigat Pelfred': 18654, 'Niceto Brunildo Fornells':14567}
>>> vots_ingressos(dvots, ding)
['Adriana de Tor Quemada', 'Joan Pere Jorbina Palau']

Nota

Podeu descarregar el fitxer amb tests test_vots_ingressos.txt.

candidats.rics(dvots, ding)

Donats un diccionari de vots dvots i un d’ingressos ding, retorna una llista amb els noms de les 10 persones més riques del municipi. A més a més, per cadascuna d’aquestes persones que sigui un candidat, al costat del nom hi ha d’haver un asterisc (“*”). La llista ha d’estar ordenada de més a menys ingressos. Suposeu que al municipi hi ha almenys 10 persones. Per exemple,


>>> dvots = {'Joan Pere Jorbina Palau':570, 'Gil Palomo Como': 743, 
... 'Niceto Brunildo Fornells':679, 'Mariona Puig Peix': 701, 
... 'Adriana de Tor Quemada': 451, 'Lola Cano Mur': 590, 'Marc Pla Rey': 468}
>>> ding = {'Mariona Puig Peix':15456, 'Arnau Osorio Lucas':27654, 
... 'Arnau Brigat Pelfred': 18654, 'Niceto Brunildo Fornells':14567, 
... 'Pere Pi Pera': 100200, 'Montse Gil Gibert': 115200, 
... 'Ana Perez Juan': 200125, 'Gil Palomo Como': 34800, 
... 'Joan Petit Balla': 43000, 'Elena Pez Paz': 29000, 
... 'Iu Quer Vall': 13000, 'Luz Bayo Cal': 25000, 'Pau Bru Bou': 10000, 
... 'Pol Coll Mas': 12000, 'Lola Cano Mur': 10000, 'Marc Pla Rey': 200000}
>>> for persona in rics (dvots, ding):
...   print(persona)
Ana Perez Juan
Marc Pla Rey*
Montse Gil Gibert
Pere Pi Pera
Joan Petit Balla
Gil Palomo Como*
Elena Pez Paz
Arnau Osorio Lucas
Luz Bayo Cal
Arnau Brigat Pelfred

Nota

Podeu descarregar el fitxer amb tests test_rics.txt.

Solució

Disposeu d’una solució al fitxer candidats.py.