Aceleracion de una funcion

Pepe Aracil pepe en diselpro.com
Mie Nov 30 16:57:01 CET 2005


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



Salud.


Israel Gutierrez wrote:
> Buenas.
> 
> Tengo una función que tiene que eliminar caracteres no imprimibles de un 
> buffer que se le pasa(generalmente el contenido de un fichero de texto) para 
> despues presentarlo en un widget de qt. El problema es cuando el buffer es 
> grande (no mas de 500k) que tarda muchisimo. ¿Se os ocurre alguna manera más 
> eficiente de hacerlo?
> 
> def solo_texto(self,cadena):
>         resultado=""
> #a es código ascii  que no interesa (lo que no está incluido en 
> string.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 cadena:
>             if ord(caracter) not in a:
>                 resultado+=caracter
>             else:
>                 continue
>         return resultado
> 
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> 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