Como faço para converter uma lista de valores ascii para uma string em python?

StackOverflow https://stackoverflow.com/questions/180606

  •  05-07-2019
  •  | 
  •  

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?

Foi útil?

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()

Padrões Python - uma otimização Anecdote

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

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
scroll top