84

それ自体がASCII値である一連の数値を含むPythonプログラムのリストを取得しました。これを画面にエコーできる「通常の」文字列に変換するにはどうすればよいですか?

4

9 に答える 9

152

おそらく 'chr()' を探しているでしょう:

>>> L = [104, 101, 108, 108, 111, 44, 32, 119, 111, 114, 108, 100]
>>> ''.join(chr(i) for i in L)
'hello, world'
于 2008-10-07T21:54:33.040 に答える
25

他のソリューションと同じ基本的なソリューションですが、個人的にはリスト内包表記の代わりにマップを使用することを好みます。


>>> L = [104, 101, 108, 108, 111, 44, 32, 119, 111, 114, 108, 100]
>>> ''.join(map(chr,L))
'hello, world'
于 2008-10-08T01:22:05.087 に答える
14
import array
def f7(list):
    return array.array('B', list).tostring()

Pythonパターンから-最適化の逸話

于 2008-10-08T20:22:31.633 に答える
8
l = [83, 84, 65, 67, 75]

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

print s
于 2008-10-07T21:55:06.970 に答える
3
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()
于 2015-08-04T03:42:20.930 に答える