J'ai une liste dans un programme Python qui contient une série de nombres, qui sont eux-mêmes des valeurs ASCII. Comment puis-je convertir cela en une chaîne "régulière" que je peux répercuter sur l'écran?Comment convertir une liste de valeurs ascii en une chaîne en python?
44
A
Répondre
82
Vous cherchez probablement pour 'chr():
>>> L = [104, 101, 108, 108, 111, 44, 32, 119, 111, 114, 108, 100]
>>> ''.join(chr(i) for i in L)
'hello, world'
6
l = [83, 84, 65, 67, 75]
s = "".join([chr(c) for c in l])
print s
18
même solution de base que d'autres, mais je préfère utiliser la carte au lieu de la compréhension de la liste:
>>> L = [104, 101, 108, 108, 111, 44, 32, 119, 111, 114, 108, 100]
>>> ''.join(map(chr,L))
'hello, world'
11
import array
def f7(list):
return array.array('B', list).tostring()
à partir de Python Patterns - An Optimization Anecdote
+1
+1 Ceci est nettement supérieur pour les listes plus longues – benpro
1
def working_ascii(): "" " C o m m e n 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
Peut-être pas comme Pyhtonic une solution, mais plus facile à lire pour 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
Je parierai vous créé cette liste L en utilisant '[ord (x) pour x dans « Bonjour, monde »]' – zapstar