4. bytes与bytearray
Python3中新引入的两种数据类型,bytes与bytearray。
encode与decode
编码(encode)
定义 编码是信息从一种形式或格式转换为另一种形式的过程。 字符编码的过程就是将字符转换为机器可读的数字的过程。 这里字符串的编码是字符串按照不同的字符集编码,返回字节序列bytes的过程。
解码(decode)
定义 是编码的逆过程,返回字符串string
编码系统
Python3中默认使用UTF-8编码。 最通用的编码表是ASCII(美国信息交换标准代码)编码表。 详细可见https://zh.wikipedia.org/wiki/ASCII
bytes
bytes是什么
不可变的字节序列
bytes的定义
定义方法
说明
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进制表示
bytes的操作
与string类型相似,不过只能操作bytes。
fromhex
类方法,bytes.fromhex(string)。string必须是两两字符组成的十六进制字符串,空格会被忽略。
hex()
返回16进制字符串
索引访问
返回该字节对应的十进制数字。
bytearray
bytearray是什么
可变的字节数组
bytearray的定义
定义方法
说明
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的操作
类似bytes操作
与bytes相同,所有的操作都可以
类似list操作
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
Last updated
Was this helpful?