Come faccio a convertire un elenco di valori ASCII in una stringa in Python?
Domanda
Ho un elenco in un programma Python che contiene una serie di numeri, che sono essi stessi valori ASCII. Come faccio a convertirlo in un "normale"? stringa che posso riecheggiare sullo schermo?
Soluzione
Probabilmente stai cercando 'chr ()':
>>> L = [104, 101, 108, 108, 111, 44, 32, 119, 111, 114, 108, 100]
>>> ''.join(chr(i) for i in L)
'hello, world'
Altri suggerimenti
Stessa soluzione di base di altre, ma personalmente preferisco usare map invece della comprensione dell'elenco:
>>> 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
Forse non come una soluzione pitonica, ma più facile da leggere per nessuno come me:
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 (): & Quot; " " Saluti ! 71, 114, 101, 101, 116, 105, 110, 103, 115, 33 & Quot; " "
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 ()
Puoi usare byte (list) .decode ()
per farlo - e list (string.encode ())
per recuperare i valori.
Question = [67, 121, 98, 101, 114, 71, 105, 114, 108, 122]
print(''.join(chr(number) for number in Question))
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow