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