Как мне преобразовать список значений ascii в строку в python? - PullRequest
57 голосов
/ 08 октября 2008

У меня в программе на Python есть список, содержащий последовательность чисел, которые сами являются значениями ASCII. Как мне преобразовать это в «обычную» строку, которую я могу вывести на экран?

Ответы [ 8 ]

110 голосов
/ 08 октября 2008

Вы, вероятно, ищете 'chr ()':

>>> L = [104, 101, 108, 108, 111, 44, 32, 119, 111, 114, 108, 100]
>>> ''.join(chr(i) for i in L)
'hello, world'
19 голосов
/ 08 октября 2008

То же базовое решение, что и у других, но я лично предпочитаю использовать карту вместо понимания списка:


>>> L = [104, 101, 108, 108, 111, 44, 32, 119, 111, 114, 108, 100]
>>> ''.join(map(chr,L))
'hello, world'
12 голосов
/ 09 октября 2008
import array
def f7(list):
    return array.array('B', list).tostring()

из Python Patterns - Анекдот для оптимизации

6 голосов
/ 08 октября 2008
l = [83, 84, 65, 67, 75]

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

print s
4 голосов
/ 13 декабря 2015

Возможно, не как решение Pyhtonic, но легче читать для таких нубов, как я:

charlist = [34, 38, 49, 67, 89, 45, 103, 105, 119, 125]
mystring = ""
for char in charlist:
    mystring = mystring + chr(char)
print mystring
2 голосов
/ 04 августа 2015

def working_ascii (): «»» Привет ! 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 ()

0 голосов
/ 04 апреля 2019

Вы можете использовать bytes(list).decode(), чтобы сделать это - и list(string.encode()), чтобы вернуть значения.

0 голосов
/ 09 декабря 2018
Question = [67, 121, 98, 101, 114, 71, 105, 114, 108, 122]
print(''.join(chr(number) for number in Question))
...