web-dev-qa-db-fra.com

Comment convertir une liste de valeurs ascii en une chaîne en python?

J'ai une liste dans un programme Python qui contient une série de nombres, qui sont eux-mêmes ASCII valeurs. Comment puis-je convertir cela en un "régulier "chaîne que je peux faire écho à l'écran?

61
Electrons_Ahoy

Vous recherchez probablement 'chr ()':

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

de Modèles Python - Anecdote d'optimisation

12
Toni Ruža
l = [83, 84, 65, 67, 75]

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

print s

Peut-être pas une solution aussi pyhtonique, mais plus facile à lire pour des noobs comme moi:

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

def working_ascii (): "" "G r e e t i n g s! 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 ()

2
ptsivakumar

Vous pouvez utiliser bytes(list).decode() pour ce faire - et list(string.encode()) pour récupérer les valeurs.

1
Timo Herngreen