[Python-es] "Reducir" un diccionario usando un subconjunto de claves
Arnau Sanchez
pyarnau en gmail.com
Vie Abr 30 13:39:56 CEST 2010
On 30/04/10 13:21, Francisco Javier Cuadrado wrote:
> d = {'nombre:'pepe', 'apellidos':'garcia lopez', 'edad':30,
> 'profesión':'futbolista'}
>
> Del cual quiero obtener otro diccionario que contenga un subconjunto
> de las claves/valores del anterior, por ejemplo quedarme sólo con el
> nombre y los apellidos:
>
> dic_resultante = {'nombre':'pepe', 'apellidos':'garcia lopez'}
Puedes usar una expresión generador + constructor dict():
def dict_filter_keys(d, keys):
return dict((key, d[key]) for key in keys)
d = {'nombre' :'pepe', 'apellidos':'garcia lopez', 'edad':30,
'profesion':'futbolista'}
print dict_filter_keys(d, ["nombre", "edad"])
# {'edad': 30, 'nombre': 'pepe'}
Siempre que hagas "inicialización a vacío ([], {}) + bucle + añadir valores"
estás implementando una solución no-funcional, algo que por norma general hay
que evitar.
Más información sobre la lista de distribución Python-es