Busqueda por clave parcial.

Chema Cortés py en ch3m4.org
Mie Dic 22 17:01:42 CET 2004


El Miércoles, 22 de Diciembre de 2004 16:24, Pepe Aracil escribió:
> El Miércoles, 22 de Diciembre de 2004 15:15, Chema Cortés escribió:
> > [ k for k in D.keys() if k.startswith("seccion_subseccion") ]
>
> <offtopic>
> Mira que son elegantes las listas comprensivas ;) .. a ver si alguna vez
> hago la conexión neuronal permanente para aplicarlas de forma automática
> allí donde se requieren.
> </offtopic>
>
> El problema es que no quiero recorrerme todas las claves con un bucle hecho
> en python por problemas de velocidad.
>
> Al final lo haré con diccionarios anidados como decía Andres Moya

Entonces es que no comprendí bien tu objetivo. Tal vez buscabas algo así:

class DictTrino(dict):
  def __getitem__(self, lista):
    return dict.__getitem__(self, "_".join(lista))


>>> d={"1_2_3":100,"1_2_4":200}
>>> d=DictTrino(d)
>>> d[ ("1","2","3") ]
100
>>> d[ ("1","2","4") ]
200
>>>



> > > ¿Existe algún método optimizado para buscar en una lista ordenada?
> >
> > Así dicho, sí que hay métodos optimizados para búsquedas en listas
> > ordenadas. Suelen ser "ejemplo de libro" y los puedes encontrar en
> > cualquier libro de algoritmos de ordenación y búsquedas.
>
> No he formulado bien la pregunta... ya sé que es una simple  búsqueda por
> dicotomia, pero mi pregunta se refería a si ya existía algo hecho en
> python.

Supongo que lo más adecuado es utilizar el módulo 'bisect', aunque resulta más 
cómodo utilizar el BTree del módulo 'bsddb'.

------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: no disponible
Type: application/pgp-signature
Size: 189 bytes
Desc: no disponible
URL: <http://mail.python.org/pipermail/python-es/attachments/20041222/64a72647/attachment.pgp>
------------ próxima parte ------------
_______________________________________________
Python-es mailing list
Python-es en aditel.org
http://listas.aditel.org/listinfo/python-es


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