6. 字节数组的可变序列操作

为什么要用字节数组

  1. 需要进行字节数据处理,同时需要修改字节数据。
  2. 字节数组可以替代所有适用于字节串的场合。

可变序列操作

运算
结果
s[i] = x
将 s 的第 i 项替换为 x
s[i:j] = t
将 s 从 i 到 j 的切片替换为可迭代对象 t 的内容
del s[i:j]
等同于 s[i:j] = []
s[i:j:k] = t
将 s[i:j:k] 的元素替换为 t 的元素
del s[i:j:k]
从列表中移除 s[i:j:k] 的元素
s.append(x)
将 x 添加到序列的末尾 (等同于 s[len(s):len(s)] = [x])
s.clear()
从 s 中移除所有项 (等同于 del s[:])
s.copy()
创建 s 的浅拷贝 (等同于 s[:])
s.extend(t) 或 s += t
用 t 的内容扩展 s (基本上等同于 s[len(s):len(s)] = t)
s *= n
使用 s 的内容重复 n 次来对其进行更新
s.insert(i, x)
在由 i 给出的索引位置将 x 插入 s (等同于 s[i:i] = [x])
s.pop() 或 s.pop(i)
提取在 i 位置上的项,并将其从 s 中移除
s.remove(x)
从 s 中移除第一个 s[i] 等于 x 的条目
s.reverse()
就地将列表中的元素逆序。

示例

>>> ba = bytearray(b'ABCdEFG')
>>> ba[3] = 68
>>> ba
bytearray(b'ABCDEFG')
>>> del ba[3]
>>> ba
bytearray(b'ABCEFG')
>>> ba.clear()
>>> ba
bytearray(b'')