.. module:: metro Estacions de metro (3 punts) ============================ Disposem d'un diccionari amb informació sobre les línies i estacions del metro de Barcelona. La clau d'aquest (:class:`dict`) és el número de línia (:class:`int`) i el valor és una llista amb les estacions d'aquella línia posades en l'ordre en què es recorren. Per exemple (òbviament és una simplificació de la realitat): .. literalinclude:: test-genera_evD.txt :language: python3 :lines: 21-23 Es vol generar un *diccionari d'estacions veïnes* que per cada estació ens indiqui quines són les seves estacions veïnes tenint en compte totes les línies. Un *diccionari d'estacions veïnes* té per claus les estacions (:class:`str`) i el valor de cada clau és una llista de tuples amb el nom i la línia de cada una de les seves estacions veïnes. Per exemple, a partir del diccionari de l'exemple anterior: .. literalinclude:: test-genera_evD.txt :language: python3 :lines: 25-31 Observa, per exemple, que les estacions veïnes de Plaça de Sants (``'p.sants'``) són Badal (``'badal'``) i Sants (``'sants'``) per la línia 5, i Hostafrancs (``'hostafrancs'``) per la línia 1. Amb aquest objectiu, es demana que al mòdul :mod:`metro` (fitxer :file:`metro.py`) facis les funcions següents: .. function:: actualitza_evD(evD, ln, estL) Afegeix al *diccionari d'estacions veïnes* `evD` les estacions de la línia `ln` que hi ha a la llista `estL`. La llista `estL` conté tres estacions com a mínim. Aquesta funció **modifica** `evD`. Per exemple: .. literalinclude:: test-actualitza_evD.txt :language: python3 :start-after: ---- inici :end-before: ---- fi Trobaràs més tests al fitxer :download:`test-actualitza_evD.txt` | .. function:: genera_evD(d) tal que *donat* ``d`` un diccionari amb les línies de metro com el descrit *retorna* un *diccionari d'estacions veïnes* que conté totes les estacions que apareixen a les línies de ``d``. Per exemple: .. literalinclude:: test-genera_evD.txt :language: python3 :start-after: ---fi-inp :end-before: ---fi-gen Disposes dels jocs de proves al fitxer :download:`test-genera_evD.txt`.