Convertir lista en cadena de caracteres

Arnau Sanchez arnau en ehas.org
Jue Sep 13 14:15:25 CEST 2007


El 13/09/2007, a les 10:01, en/na Alex Sancho va escriure:

> O en su defecto, cómo convertir un texto a números (ya sea ASCII o lo que
> sea). en programación funcional (nada de bucles)

Te han dado algunas propuestas. A la idea de pasarlo a números decimales, sólo 
añadiría que si éstos ocupan 3 caracteres (ya que el máximo es 255) no tendrás 
el problema de "sincronismo" que comentaba Tny:

char2num = lambda c: "%03d" % ord(c)
str2nums = lambda s: "".join(map(char2num, s))
str2nums("hola")
Out[]:'104111108097'

Aunque la verdad es que quedaría mucho mejor si lo hicieras en hexadecimal:

char2hex = lambda c: "%02x" % ord(c)
str2hexs = lambda s: "".join(map(char2hex, s))
str2hexs("hola")
Out[]:'686f6c61'

Si esto último te gusta, el método "encode" de la cadena te da directamente lo 
que buscas:

http://docs.python.org/lib/standard-encodings.html

"hola".encode("hex_codec")
Out[]:'686f6c61'

 > Si utilizo bucles, supongo que con archivos muy grandes tendrá problemas,
 > por lo que he visto que la programación funcional me resulta más útil. El
 > problema es que no sé convertirlo a una cadena

Aunque prefiero, con mucho, la programación funcional, usar bucles no tiene por 
qué resultar más lento, todo depende de cómo lo hagas.

arnau
------------ 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