Como faço para converter uma lista de valores ascii para uma string em python?
Pergunta
Eu tenho uma lista em um programa Python que contém uma série de números, que são eles mesmos valores ASCII. Como faço para converter isso em uma string "regular" que eu possa ecoar para a tela?
Solução
Você está procurando provavelmente 'chr ()':
>>> L = [104, 101, 108, 108, 111, 44, 32, 119, 111, 114, 108, 100]
>>> ''.join(chr(i) for i in L)
'hello, world'
Outras dicas
solução básica mesmo que outros, mas eu, pessoalmente, prefiro usar o mapa, em vez da compreensão da lista:
>>> 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()
l = [83, 84, 65, 67, 75]
s = "".join([chr(c) for c in l])
print s
Talvez não seja tão Pyhtonic uma solução, mas mais fácil de ler para noobs como eu:
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 (): """ Saudações ! 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 ()
Você pode usar bytes(list).decode()
para fazer isso -. E list(string.encode())
para obter os valores de volta ??p>
Question = [67, 121, 98, 101, 114, 71, 105, 114, 108, 122]
print(''.join(chr(number) for number in Question))
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow