Aceleracion de una funcion
Israel Gutierrez
amphora en escomposlinux.org
Mie Nov 30 22:02:44 CET 2005
El Miércoles, 30 de Noviembre de 2005 16:57, Pepe Aracil escribió:
> Puedes utilizar como ya te han comentado el replace o el translate.
> Pero para tu información, decir que la concatenación de cadenas en python
> es lentisima. Prueba esta forma alternativa de concatenar:
>
> lst_result=[]
> for caracter in cadena:
> if ord(caracter) not in a:
> lst_resultado.append(caracter)
> resultado = "".join(lst_resultado)
> return resultado
Sabía que la concatenación es lenta, pero no se me ocurria ninguna otra forma
para hacerlo rápido. Gracias por las respuestas, entre usar una tupla, los
join y el replace tarda entre 1 y 2 segundos para ficheros de 1 mega.
Al final he dejado algo parecido a esto:
#-*_ coding: ISO-8859-15 -*-
import sys,time
def solo_texto(cadena):
#a es código ascii que no interesa (lo que no está
incluidoenstring.printable)
a=(0,1,2,3,4,5,6,7,8,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160)
for caracter in a:
resultado=cadena.replace(chr(caracter),'')
return resultado
if __name__=='__main__':
cadena=''.join(file(sys.argv[1]).readlines())
texto=solo_texto(cadena)
print time.clock()
--
BOFH excuse #101:
Collapsed Backbone
------------ 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/20051130/b0772901/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