打印列表的Python bytearray时输出不同

时间:2017-05-17 23:49:32

标签: arrays python-2.7 printing

我试图在Python 2.7中将整数列表转换为bytearray

输入代码:

bytearray([1,2,120,120])

输出:

bytearray(b'\x01\x02xx')

但是当我尝试"打印"相同的bytearray,我得到一些有线字符。

输入代码:

print bytearray([1,2,120,120])

输出:

??xx

他们俩都一样吗?这背后的原因是什么?

1 个答案:

答案 0 :(得分:1)

如果你想获得bytearray(b'\x01\x02xx'),你需要使用bytearray对象的__repr__方法:

print repr(bytearray([1,2,120,120]))

默认情况下,__str__处于调用状态,返回字节数组的字符串表示形式。该字符串包含不可打印字符的\x01\x02,因此您会看到问号。

参考文献: