Una empresa a veces necesita enviar a dos trabajadores para realizar reparaciones. Para formar las parejas tiene los datos de los trabajadores en un diccionario que asocia el nombre de un trabajador con la lista con los nombres del resto de trabajadores con los que está dispuesto a trabajar. Que el trabajador ’pepe’ este dispuesto a trabajar con ’paco’ no implica que ’paco’ este dispuesto a trabajar con ’pepe’. Es posible que algún trabajador no quiera trabajar con nadie.
Programa una función limpia(preferencias) que, dado un diccionario preferencias como el descrito al principio, devuelva un nuevo diccionario en el que se han quitado los nombres de los trabajadores que ya no están en la empresa, es decir, que ya no son claves.
Puntuación
Apartado 1: 45 puntos.
Apartado 2: 55 puntos.
>>> d1 = {'pep': ['pau', 'marc', 'eva'], 'pau': ['ana', 'lluc']} >>> d2 = limpia(d1) >>> d2 == {'pep': ['pau'], 'pau': []} True >>> serv = ['sabrenia', 'rowhn', 'storms'] >>> prefs = {'jennafer-lee': ['storms', 'sabrenia', 'sarma', 'nyera'], ... 'niloofar': ['jennafer-lee', 'rowhn', 'aaniah', 'brents'], ... 'sabrenia': [], ... 'rowhn': [], ... 'ishrat': ['aaniah', 'lyndell', 'lavarr', 'sarma', 'sanburn'], ... 'nyera': ['maxantia'], ... 'maxantia': ['nüket', 'storms', 'jerid', 'lavarr', 'nică'], ... 'sanburn': ['niloofar'], ... 'sarma': ['jerid', 'nüket', 'rowhn', 'sanburn'], ... 'aaniah': ['sabrenia', 'nică', 'niloofar', 'jennafer-lee'], ... 'nüket': ['nică', 'maxantia'], ... 'nică': ['storms', 'lavarr', 'sarma', 'rowhn'], ... 'storms': ['aaniah', 'maxantia', 'lavarr', 'nică']} >>> emp = empareja(serv, prefs) >>> emp == {'sabrenia': [], 'rowhn': [], 'storms': ['maxantia', 'nică']} True