Coral 2 ======= Una coral té emmagatzemada la informació dels seus cantaires en un fitxer. A cada línia d'aquest fitxer hi ha tres dades, separades pel caràcter ``&``, el nom, el tipus de veu (soprano, contralt, tenor o baix) i un indicatiu de si el cantaire pot actuar com a solista (``True``) o no (``False``). Per exemple: .. literalinclude:: coral2.txt :language: text :lines: 1-4 #. Disenyeu la funció ``bolos`` que a partir del nom d'un fitxer d'aquestes característiques, d'un string que representa un tipus de veu i d'un enter, *n*, retorni True si hi ha al menys *n* cantaires amb el tipus de veu indicat que poden actuar com a solistes i False en cas contrari. Desa la funció al fitxer ``coral2.py``. La funció ha de passar el següent doctest: .. literalinclude:: test_coral2_1.txt :language: python3 :lines: 6- .. note:: Podeu descarregar el fitxer amb tests :download:`test_coral2_1.txt` i el fitxer d'exemple :download:`coral2.txt`. #. Dissenya la funció ``dicc_solistes`` que a partir del nom d'un fitxer d'aquestes característiques, obtingui i retorni un diccionari on la clau sigui el tipus de veu i el valor una llista amb els cantaires que tenen aquell tipus de veu i que poden actuar com a solistes. Aquesta llista ha d'estar ordenada alfabeticament. Desa la funció al mateix fitxer ``coral2.py`` de l'apartat anterior. La funció ha de passar el següent doctest: .. literalinclude:: test_coral2_2.txt :language: python3 :lines: 6- .. note:: Podeu descarregar el fitxer amb tests :download:`test_coral2_2.txt` i el fitxer d'exemple :download:`coral2.txt`. .. rubric:: Solucions Disposeu de solucions al fitxer :download:`coral2.py `