整数の配列があり、それを文字列に変換する必要があります。
[1,2,3,4] => '\x01\x02\x03\x04'
どのような機能を使用できますか? str() で試してみましたが、「1234」が返されます。
string = ""
for val in [1,2,3,4]:
string += str(val) # '1234'
''.join([chr(x) for x in [1, 2, 3, 4]])
list
小さい数の を に直接変換できますbytearray
。
iterable の場合、配列の初期内容として使用される 0 <= x < 256 の範囲の整数の iterable でなければなりません。
また、a を(2.x) または(3.x、または 2.6+)bytearray
に直接変換できます。str
bytes
実際、3.x では、リストbytes
を経由せずに直接変換することもできbytearray
ます。
コンストラクターの引数は、bytearray() の場合と同様に解釈されます。
そう:
str(bytearray([1,2,3,4])) # 2.6-2.7 only
bytes(bytearray([1,2,3,4])) # 2.6-2.7, 3.0+
bytes([1,2,3,4]) # 3.0+ only
バイト文字列ではなく、3.x で本当に文字列が必要な場合は、デコードする必要があります。
bytes(bytearray([1,2,3,4])).decode('ascii')
詳細については、ドキュメントのBinary Sequence Typesを参照してください。