Tengo una lista que tiene este aspecto:Python - intersección entre una lista y claves de un diccionario
l1 = ['200:200', '90:728']
tengo un diccionario que tiene este aspecto:
d1 = {'200:200':{'foo':'bar'},'300:300':{'foo':'bar'}}
Necesito llegar filtra el dictioary donde solo las claves están en l1. El dict debería tener este aspecto:
result = {'200:200':{'foo':'bar'}}
En esencia, un cruce de una lista y las claves de un diccionario, mientras que devolver la subsección de la dict.
¿Cómo hago esto de manera eficiente cuando el tiempo es un problema para un conjunto grande?
Gracias
Tenga en cuenta que en 3.x, una vista del diccionario se configura como, por lo que no necesita envolverlo en 'set()'. De hecho, en 3.x, toda la línea superior puede ser 'keys = d1.keys() & l1'. –
@Lattyware no necesita convertirlo en un conjunto en 2.x – jamylak
Ni siquiera necesita las teclas(), 'set (l1) .intersection (d1)' – georg