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