我有一个整数数组,我需要将其转换为字符串。
[1,2,3,4] => '\x01\x02\x03\x04'
我可以使用哪些功能?我尝试使用str(),但它返回'1234'。
string = ""
for val in [1,2,3,4]:
string += str(val) # '1234'
答案 0 :(得分:4)
''.join([chr(x) for x in [1, 2, 3, 4]])
答案 1 :(得分:4)
您可以将list
小号直接转换为bytearray
:
如果它是可迭代的,则它必须是0< = x<范围内的整数的可迭代。 256,用作数组的初始内容。
您可以将bytearray
直接转换为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')
有关详细信息,请参阅文档中的Binary Sequence Types。