.. py:module:: ulleres 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 :py:mod:`ulleres` (fitxer, :file:`ulleres.py`), dissenya les següents funcions. #. La funció modificadora :py:func:`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: .. literalinclude:: test-unio-llistes.txt :language: python3 :lines: 3-13 Disposes de més tests al fitxer :download:`test-unio-llistes.txt`. #. La funció :py:func:`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ó :py:func:`diametres` cridi a la funció :py:func:`unio_llistes`. Per exemple: .. literalinclude:: test-diametres.txt :language: python3 :lines: 3-15 Disposes de més tests al fitxer :download:`test-diametres.txt`. .. rubric:: Solució Disposeu d'una solució al fitxer :download:`ulleres.py`