Buscar mas rapido
Miguel Angel Garcia
magmax9 en yahoo.es
Sab Dic 11 18:51:56 CET 2004
La verdad es que le veo poca utilidad, pero a mí se me ocurre lo
siguiente:
Preprocesa la cadena generando una estructura en forma de lista de
lista. En cada posición de este vector (P) almacena la posición en la
que aparece el número en la cadena original. Algo así:
P = []
for i in range(len(barra)):
val = int(i)
P[val].append(i)
Ahora para buscar, basta con que mires en el vector del valor; por
ejemplo, si queremos saber en qué posiciones aparece el 1, basta ver los
valores que aparecen en P[1]. A esto se le llama "Fichero invertido" :-D
El sáb, 11-12-2004 a las 10:12 -0300, Alvaro Leiva escribió:
> Hola a todos en la lista...
>
> Tengo otra consulta... miren, yo guardo en una variable llamada barra un
> numero que tiene 10**6 unidades... y lo guardo como string.. esto es
> barra="321458692132132157635465465....."
> print len(barra)
> 1000000
>
> resulta que cada ves que quiero buscar un numero en esa cadena de numero
> se demora aprox 0.04 (no se que unidad usa el computador parece que son
> segundos). el punto es que por ejemplo tengo que buscar 806148 mil
> numeros dentro de este numero y solo se va a demorar
> 0.04*806148/60/60= 8.9 horas...
>
> entonces.. hay alguna forma de hacer esta busqueda mas rapida.. pasando
> esa variable a un archivo etc... el comando que yo uso para buscar es:
> "654" in barra
>
> ATTE
>
> Alvaro Leiva
>
> gracias
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo/python-es
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: Esta parte del mensaje está firmada digitalmente
URL: <http://mail.python.org/pipermail/python-es/attachments/20041211/2c3155d3/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