6

整数の配列があり、それを文字列に変換する必要があります。

[1,2,3,4] => '\x01\x02\x03\x04'

どのような機能を使用できますか? str() で試してみましたが、「1234」が返されます。

string = ""
for val in [1,2,3,4]:
    string += str(val) # '1234'
4

2 に答える 2

9

''.join([chr(x) for x in [1, 2, 3, 4]])

于 2013-06-12T23:53:35.347 に答える
4

list小さい数の を に直接変換できますbytearray

iterable の場合、配列の初期内容として使用される 0 <= x < 256 の範囲の整数の iterable でなければなりません。

また、a を(2.x) または(3.x、または 2.6+)bytearrayに直接変換できます。strbytes

実際、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を参照してください。

于 2013-06-12T23:57:13.450 に答える