Ulleres¶
Una marca d’ulleres de sol identifica els seus models mitjançant dos
codis. El primer representa la mida i consta de dos dígits que indiquen
el diàmetre del vidre, un guió, i dos dígits que indiquen la longitud
del pont, per exemple, 52-14. El segon codi indica el model pròpiament
dit, per exemple, RB2014.
La marca emmagatzema la informació dels diferents models disponibles
en un diccionari on cada clau és un codi (string) amb una mida i cada
valor una llista de codis de model (strings) que hi ha disponibles per
a aquesta mida. Per exemple, la clau '52-14' representa la mida
d’ulleres de 52 de diàmetre i 14 de pont, i el valor associat
['RB2014','RB2514','RJ2014'] indica que d’aquestes mides hi ha els
models RB2014, RB2514 i RJ2014.
Al mòdul ulleres (fitxer, ulleres.py), dissenya les següents funcions.
La funció modificadora
unio_llistes()que, donades dues llistes l1 i l2 qualsevol, afegeix els elements de la llista l2 al final de la llista l1 sense que hi hagi elements repetits i en el mateix ordre que apareixen a l2.Per exemple:
>>> llista1 = ['RB2014', 'RB2213', 'RJ2014'] >>> llista2 = ['RJ2514', 'RB2014'] >>> unio_llistes(llista1,llista2) >>> llista1 ['RB2014', 'RB2213', 'RJ2014', 'RJ2514'] >>> llista3 = [10, 20, 30, 40, 50, 60] >>> llista4 = [10, 55, 30, 25, 10] >>> unio_llistes(llista3,llista4) >>> llista3 [10, 20, 30, 40, 50, 60, 55, 25]
Disposes de més tests al fitxer
test-unio-llistes.txt.La funció
diametres()que donat un diccionari com el descrit, retorni un nou diccionari on cada clau sigui un diàmetre d’ulleres diferent i cada valor la llista dels models amb aquest diàmetre ordenada alfabèticament. Tant el diàmetre com els models es representen com a strings. En aquest nou diccionari hi han d’aparèixer tantes claus com diàmetres diferents hi hagi al diccionari donat i la llista associada a cada clau no pot contenir models repetits.Cal que la funció
diametres()cridi a la funcióunio_llistes().Per exemple:
>>> du = { ... '52-14':['RB2014','RB2213','RJ2014'], ... '54-14':['RJ2014','RB2514'], ... '52-16':['RJ2514','RB2014'], ... '55-14':['RB2014'], ... } >>> dr = diametres(du) >>> dr == { ... '52':['RB2014','RB2213','RJ2014','RJ2514'], ... '54':['RB2514','RJ2014'], ... '55':['RB2014'], ... } True
Disposes de més tests al fitxer
test-diametres.txt.
Solució
Disposeu d’una solució al fitxer ulleres.py