5. 字节数组
什么是字节数组
字节数组是可变的字节串。
- 字节串是不可变的二进制序列类型。
- 字节数组是可变的二进制序列类型。
字节数组的创建
bytearray 对象没有专属的字面值语法,它们总是通过调用构造器函数来创建。
构造函数bytearray()。
函数
说明
bytearray()
创建一个空的字节数组
bytearray(整数n)
创建一个指定长度的以零值填充的字节数组
bytearray(整型可迭代对象)
通过由整数组成的可迭代对象创建一个字节数组
bytearray(字符串, encoding='utf-8')
用字符串的转换编码生成一个字节数组
示例:
>>> bytearray()
bytearray(b'')
>>> bytearray(5)
bytearray(b'\x00\x00\x00\x00\x00')
>>> bytearray([65, 66, 67])
bytearray(b'ABC')
>>> bytearray("中国", 'utf-8')
bytearray(b'\xe4\xb8\xad\xe5\x9b\xbd')
字节数组和字节串一样,支持通用序列操作,操作方式如下表所示。
通用序列操作:
运算
结果:
x in s
如果 s 中的某项等于 x 则结果为 True,否则为 False
x not in s
如果 s 中的某项等于 x 则结果为 False,否则为 True
s + t
s 与 t 相拼接
s * n 或 n * s
相当于 s 与自身进行 n 次拼接
s[i]
s 的第 i 项,起始为 0
s[i:j]
s 从 i 到 j 的切片
s[i:j:k]
s 从 i 到 j 步长为 k 的切片
len(s)
s 的长度
min(s)
s 的最小项
max(s)
s 的最大项
s.index(x[, i[, j]])
x 在 s 中首次出现项的索引号(索引号在 i 或其后且在 j 之前)
s.count(x)
x 在 s 中出现的总次数
示例
>>> ba = bytearray([65, 66, 67])
>>> 67 in ba
True
>>> ba + ba
bytearray(b'ABCABC')
>>> ba[::2]
bytearray(b'AC')
>>>