我在Python程序中有一个列表,其中包含一系列数字,这些数字本身就是ASCII值。如何将其转换为“常规”我可以回到屏幕上的字符串吗?

有帮助吗?

解决方案

你可能正在寻找'chr()':

>>> L = [104, 101, 108, 108, 111, 44, 32, 119, 111, 114, 108, 100]
>>> ''.join(chr(i) for i in L)
'hello, world'

其他提示

与其他人一样的基本解决方案,但我个人更喜欢使用地图而不是列表理解:


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

来自 Python模式 - 优化轶事

l = [83, 84, 65, 67, 75]

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

print s

也许不是Pyhtonic的解决方案,但更容易阅读像我这样的新手:

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():     """         问候 !         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()

您可以使用 bytes(list).decode()来执行此操作 - 并使用 list(string.encode())来获取值。

Question = [67, 121, 98, 101, 114, 71, 105, 114, 108, 122]
print(''.join(chr(number) for number in Question))
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top