Busqueda Parcial con Tuplas como Clave de Diccionario

Alejandro Novo alejandro.novo en gmail.com
Vie Jul 21 10:11:04 CEST 2006


Buenos días,

en mi caso tengo una lista y un diccionario, donde el diccionario tiene como
claves una tupla. Cada tupla solo tiene un elemento relevante para mi
búsqueda (el 2º como podéis ver en la lista ejemplo) y lo que necesito es
recorrer el diccionario y recoger todos los valores donde el elemento de mi
lista inicial aparezca en la clave. Por ejemplo:

d = {('a', 'b'): ['1', '2', '3'], ('e', 'f'): ['8', '9', '10'], ('z', 'f'):
['11', '12', '13'], ('c', 'd'): ['5', '6', '7']}
l = ['b', 'd', 'f']

for elem in d:
    for elem2 in l:
        if elem2 in elem:
            if elem2 not in dAux:
                dAux[elem2]=[]
                dAux[elem2].append(d[elem])
            else:
                dAux[elem2].append(d[elem])

Lo que me revolvería lo que busco:

dAux = {'b': [['1', '2', '3']], 'd': [['5', '6', '7']], 'f': [['8', '9',
'10'], ['11', '12', '13']]}

Pero esta forma es lentísima para mi caso, donde los diccionarios son de
tamaño considerable, así como la lista.

Muchas gracias de antemano.

Un saludo.




Más información sobre la lista de distribución Python-es