Aceleracion de una funcion
Rafael Villar Burke
pachi en mmn-arquitectos.com
Mie Nov 30 13:33:56 CET 2005
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
>
>
- podrías usar str.translate
*translate*( table[, deletechars])
Return a copy of the string where all characters occurring in the
optional argument deletechars are removed, and the remaining
characters have been mapped through the given translation table,
which must be a string of length 256.
- podrías usar una tupla en vez de una lista
Suerte,
Rafael Villar Burke
------------ 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