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,被0填充 |
| [0,255]的int组成的可迭代对象 |
| 等价于string.encode() |
| 从一个字节序列或者buffer复制出一个新的不可变的bytes对象 |
| 使用基本ASCII字符表示 |
| 使用16进制表示 |
bytes的操作
与string类型相似,不过只能操作bytes。
fromhex
类方法,bytes.fromhex(string)。string必须是两两字符组成的十六进制字符串,空格会被忽略。
hex()
返回16进制字符串
索引访问
返回该字节对应的十进制数字。
bytearray
bytearray是什么
可变的字节数组
bytearray的定义
定义方法 | 说明 |
| 空bytearray |
| 指定字节的bytearray,被0填充 |
| [0,255]的int组成的可迭代对象 |
| 近似于string.encode() |
| 从一个字节序列或者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