4. bytes与bytearray

Python3中新引入的两种数据类型,bytes与bytearray。

encode与decode

编码(encode)

定义 编码是信息从一种形式或格式转换为另一种形式的过程。 字符编码的过程就是将字符转换为机器可读的数字的过程。 这里字符串的编码是字符串按照不同的字符集编码,返回字节序列bytes的过程。

str.encode(encoding="utf-8",errors="strict")

解码(decode)

定义 是编码的逆过程,返回字符串string

bytes.encode(encoding="utf-8",errors="strict")
bytearray.encode(encoding="utf-8",errors="strict")

编码系统

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。

b'abcdef'.replace(b'f',b'z')
b'abcd'.find(b'b')

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

bytearray.append(int)

将数字为int的字节在最后放入 返回一个None 时间复杂度O(1)

insert

bytearray.insert(index, int)

将数字为int的字节插入index位置 返回一个None 时间复杂度O(n)

remove

bytearray.remove(value)

将value从bytearray中删除(1个) 返回None 如果没有value,返回ValueError。 时间复杂度O(n)

pop

bytearray.pop([index]])

将索引index的从列表中删除,不指定index则删除最后一个 返回被删除值 时间复杂度O(n)或者O(1)

反转

bytearray.reverse()

返回None,修改原bytearray

清空

bytearray.clear()

返回None,清空原bytearray

Last updated