1. Estoc llibreria (3 Punts)

Es demana que al fitxer llibreria.py facis la funció

classifica(d_stoc, llengua)

on d_stoc és un diccionari amb la informació de tots els llibres que hi ha en una llibreria. En aquest diccionari les claus són strings que representen els diferents gèneres literaris. El valor associat a cada clau és un diccionari amb la informació de tots els llibres que hi ha d’aquest gènere. En aquest diccionari, les claus són strings que representen les diferents llengües amb les quals trobem llibres en la llibreria. El valor és una llista de tuples, una tupla per a cada obra, amb el títol de l’obra i l’autor/autora.

El segon paràmetre de la funció, llengua, és un string que representa una llengua.

Podem observar un exemple de diccionari com el descrit tot seguit:

>>> d={'Narrativa': {'Catala': [('Isabel Clara Simó', 'Júlia'),
... ('Glòria Llobet', 'El cor de les pedres'), ('Isabel Clara Simó', 'La Nati')],
... 'Angles': [('Sally Rooney', 'Normal people'), ('Colleen Hoover', 'It Starts with us'),
... ('Cormac Maccarthy', 'The passenger')]},
... 'Poesia':  {'Catala': [('Gabriel Ferrater', 'Les dones i els dies'),
... ('Carles Riba', 'Llibres de poesia'), ('Maria Mercè Marçal', 'Desglaç')],
... 'Espanyol': [('Federico Garcia Lorca', 'Poemas esenciales'), ('Elvira Sastre', 'Adiós al frío'),
... ('Sara Búho', 'La ataraxia del corazón'), ('Mario Benedetti', 'El amor, las mujeres y la vida')]}}

Aquest diccionari de l’exemple té dues claus: 'Narrativa' i 'Poesia'. En aquest cas, cada una de les claus té associat un diccionari també de longitud dos. En el cas de 'Narrativa', les claus corresponen a les llengües 'Catala' i 'Angles', amb valors llistes de tuples.

La funció que demanen ha de retornar un diccionari on la clau són els diferents gèneres literaris en els quals hi ha algun llibre escrit en la llengua donada i el corresponent valor és el nombre de llibres d’aquest gènere que hi ha en aquesta llengua. Només apareixen en el diccionari aquells gèneres pels quals hi ha almenys un llibre en la llengua donada.

Aquí tens uns doctests d’exemple que utilitzen el diccionari anterior:

>>> d_ini={'Viatge':{'Catala': [('Gabriel Pernau', 'A la Xina en bicicleta')]}}

>>> classifica(d_ini, 'Catala')
{'Viatge': 1}

>>> classifica(d_ini, 'Espanyol')
{}

>>> d={'Narrativa': {'Catala': [('Isabel Clara Simó', 'Júlia'),
... ('Glòria Llobet', 'El cor de les pedres'), ('Isabel Clara Simó', 'La Nati')],
... 'Angles': [('Sally Rooney', 'Normal people'), ('Colleen Hoover', 'It Starts with us'),
... ('Cormac Maccarthy', 'The passenger')]},
... 'Poesia':  {'Catala': [('Gabriel Ferrater', 'Les dones i els dies'),
... ('Carles Riba', 'Llibres de poesia'), ('Maria Mercè Marçal', 'Desglaç')],
... 'Espanyol': [('Federico Garcia Lorca', 'Poemas esenciales'), ('Elvira Sastre', 'Adiós al frío'),
... ('Sara Búho', 'La ataraxia del corazón'), ('Mario Benedetti', 'El amor, las mujeres y la vida')]}}

>>> d2=classifica(d, 'Catala')

>>> d2=={'Narrativa': 3, 'Poesia': 3}
True

>>> d3=classifica(d, 'Angles')
>>> d3
{'Narrativa': 3}

>>> d4=classifica(d, 'Espanyol')
>>> if d4!={'Poesia': 4}:
...    print(d4)

>>> d5=classifica(d, 'Xinés')
>>> if d5!={}:
...    print(d5)

Trobaràs més tests al fitxer test-llibreria.txt, i una solució a llibreria.py