4. bytes与bytearray
Last updated
Was this helpful?
Last updated
Was this helpful?
Python3中新引入的两种数据类型,bytes与bytearray。
定义 编码是信息从一种形式或格式转换为另一种形式的过程。 字符编码的过程就是将字符转换为机器可读的数字的过程。 这里字符串的编码是字符串按照不同的字符集编码,返回字节序列bytes的过程。
定义 是编码的逆过程,返回字符串string
Python3中默认使用UTF-8编码。 最通用的编码表是ASCII(美国信息交换标准代码)编码表。 详细可见
不可变的字节序列
定义方法
说明
bytes()
空bytes
bytes(int)
指定字节的bytes,被0填充
bytes(iterable_of_ints)
[0,255]的int组成的可迭代对象
bytes(string, encoding[, errors])
等价于string.encode()
bytes(bytes_or_buffer)
从一个字节序列或者buffer复制出一个新的不可变的bytes对象
b'abc9'
使用基本ASCII字符表示
b"\x41\x61"
使用16进制表示
与string类型相似,不过只能操作bytes。
类方法,bytes.fromhex(string)。string必须是两两字符组成的十六进制字符串,空格会被忽略。
返回16进制字符串
返回该字节对应的十进制数字。
可变的字节数组
定义方法
说明
bytearray()
空bytearray
bytearray(int)
指定字节的bytearray,被0填充
bytearray(iterable_of_ints)
[0,255]的int组成的可迭代对象
bytearray(string, encoding[, errors])
近似于string.encode()
bytearray(bytes_or_buffer)
从一个字节序列或者buffer复制出一个新的不可变的bytes对象
与bytes相同,所有的操作都可以
append
将数字为int的字节在最后放入 返回一个None 时间复杂度O(1)
insert
将数字为int的字节插入index位置 返回一个None 时间复杂度O(n)
remove
将value从bytearray中删除(1个) 返回None 如果没有value,返回ValueError。 时间复杂度O(n)
pop
将索引index的从列表中删除,不指定index则删除最后一个 返回被删除值 时间复杂度O(n)或者O(1)
反转
返回None,修改原bytearray
清空
返回None,清空原bytearray