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

您可以将 alist的小数直接转换为 a bytearray

如果是可迭代的,则必须是 0 <= x < 256 范围内的整数的可迭代,用作数组的初始内容。

您可以将 abytearray直接转换为str(2.x) 或bytes(3.x, 或 2.6+)。

事实上,在 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')

有关更多详细信息,请参阅文档中的二进制序列类型

于 2013-06-12T23:57:13.450 回答