Choir 2 ======= Save all functions into the same file named ``choir2.py``. A choir has stored the information of its singers in a file. In each line of this file there are three data, separated by the character ``&``: the name, the voice (soprano, alto, tenor or bass)b both :class:`str`, and a Boolean (:class:`bool`) showing whether the singer can act as a soloist (``True``) or not (``False``). You can download file :download:`choir2.txt` with an example, which is partially shown here: .. literalinclude:: choir2.txt :language: python3 :lines: 1-4 #. Write the function :py:func:`gigs` that takes a name of a file as described (:class:`str`), a voice (:class:`str`) and an integer, ``n``, (:class:`int`) and returns a Boolean (:class:`bool`) which a value of ``True`` if there are at least ``n`` singers with the given voice that can act as soloists and ``False`` otherwise. Examples: .. literalinclude:: test-gigs.txt :language: python3 :lines: 3- .. note:: You can download the file with tests :download:`test-gigs.txt`. #. Write the function :py:func:`dicc_soloists` that takes a name of a file as described (:class:`str`), and returns a dictionary (:class:`dict`), where the key is a voice (:class:`str`) and the value is a :class:`list` with those singer's names (:class:`str`) with this voice and that can act as soloists. The dictionary must be complete and its lists must be in alphabetical order. Examples: .. literalinclude:: test-soloists.txt :language: python3 :lines: 3- .. note:: You can download the file with tests :download:`test-soloists.txt` .. rubric:: Solutions You have some solutions in the file :download:`choir2.py`