Pregunta

Tengo una lista en un programa de Python que contiene una serie de números, que son valores ASCII. ¿Cómo puedo convertir esto en un " regular " cadena que puedo hacer eco a la pantalla?

¿Fue útil?

Solución

Probablemente estés buscando 'chr ()':

>>> L = [104, 101, 108, 108, 111, 44, 32, 119, 111, 114, 108, 100]
>>> ''.join(chr(i) for i in L)
'hello, world'

Otros consejos

La misma solución básica que otras, pero personalmente prefiero usar el mapa en lugar de la lista de comprensión:


>>> L = [104, 101, 108, 108, 111, 44, 32, 119, 111, 114, 108, 100]
>>> ''.join(map(chr,L))
'hello, world'
import array
def f7(list):
    return array.array('B', list).tostring()

de Patrones de Python: una anécdota de optimización

l = [83, 84, 65, 67, 75]

s = "".join([chr(c) for c in l])

print s

Tal vez no sea una solución Pyhtonic, pero es más fácil de leer para noobs como yo:

charlist = [34, 38, 49, 67, 89, 45, 103, 105, 119, 125]
mystring = ""
for char in charlist:
    mystring = mystring + chr(char)
print mystring

def working_ascii ():     " " "         Saludos !         71, 114, 101, 101, 116, 105, 110, 103, 115, 33     " " "

hello = [71, 114, 101, 101, 116, 105, 110, 103, 115, 33]
pmsg = ''.join(chr(i) for i in hello)
print(pmsg)

for i in range(33, 256):
    print(" ascii: {0} char: {1}".format(i, chr(i)))

working_ascii ()

Puedes usar bytes (list) .decode () para hacer esto, y list (string.encode ()) para recuperar los valores.

Question = [67, 121, 98, 101, 114, 71, 105, 114, 108, 122]
print(''.join(chr(number) for number in Question))
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top