>>> a = bytearray('tuv', 'utf-8')
>>> a
bytearray(b'tuv')
>>> a[0]=115
>>> a
bytearray(b'suv')
追加字节和字节数组
bytes和bytearray对象可以使用+运算符连接:
>>> a = bytes(3)
>>> a
b'\x00\x00\x00'
>>> b = bytearray(4)
>>> b
bytearray(b'\x00\x00\x00\x00')
>>> a+b
b'\x00\x00\x00\x00\x00\x00\x00'
>>> b+a
bytearray(b'\x00\x00\x00\x00\x00\x00\x00')
1条答案
按热度按时间nzk0hqpo1#
字节和字节数组相似...
python3的
bytes
和bytearray
类都包含字节数组,其中每个字节可以取0到255之间的值,主要区别在于bytes
对象是 * 不可变的 *,这意味着一旦创建,就不能修改其元素,而bytearray
对象允许修改其元素。bytes
和bytearay
都提供了编码和解码字符串的函数。bytes
和编码字符串bytes对象可以用几种不同的方法构造:
请注意后两个选项之间的区别:'utf-16'指定通用的utf-16编码,因此其编码形式包括
[0xff, 0xfe]
的两字节“字节顺序标记”前导码。当指定'utf-16-le'的显式顺序时,如后一个示例所示,编码形式将省略字节顺序标记。由于bytes对象是不可变的,因此尝试更改其元素之一会导致错误:
字节数组和编码字符串
与
bytes
类似,字节数组可以通过多种方式构造:因为字节数组是 mutable 的,所以你可以修改它的元素:
追加字节和字节数组
bytes
和bytearray
对象可以使用+运算符连接:请注意,链接结果采用第一个参数的类型,因此
a+b
生成bytes
对象,b+a
生成bytearray
。将bytes和bytearray对象转换为字符串
可以使用
decode
函数将bytes和bytearray对象转换为字符串。该函数假定您提供的解码类型与编码类型相同。例如: