アスキー値のリストをPythonで文字列に変換するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/180606

  •  05-07-2019
  •  | 
  •  

質問

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

これを行うには 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