bytearray() 是 Python 的内置函数,用于创建可变的字节序列对象,核心特性如下:
- 基础用法
创建空字节数组
b = bytearray() bytearray(b'')
创建指定长度的零填充数组
b = bytearray(3) bytearray(b'\x00\x00\x00')
从可迭代整数创建(0-255范围)
b = bytearray([65, 66, 67]) bytearray(b'ABC')
数据源支持
| 输入类型 | 示例 | 结果 |
|-------------------|---------------------------|--------------------------|
| 字符串 + 编码 |bytearray("中文", "utf-8")|bytearray(b'\xe4\xb8\xad\xe6\x96\x87')|
| 字节对象 (bytes) |bytearray(b"ABC")| 可变的字节数组副本 |
| 范围对象 |bytearray(range(65,68))|bytearray(b'ABC')|核心特性
- 可变性:支持索引修改、切片操作
b = bytearray(b"hello") b[0] = 74 改为 'J' (ASCII 74) print(b) bytearray(b'Jello') - 缓冲区协议:直接访问底层内存
- 方法支持:
-
append():添加单个字节 -
extend():添加多个字节 -
decode():转字符串 - 列表式操作:
pop(),insert(),remove()
-
- 编码转换示例
text = "Python"
encoded = bytearray(text, "utf-8") 编码存储
decoded = encoded.decode("utf-8") 解码还原
print(decoded) 输出: Python
- 应用场景
- 二进制数据处理:网络协议解析
- 高效修改:替代不可变
bytes对象 - 内存操作:与 C 库交互的缓冲区
- 实时编解码:流式数据处理
注意:
- 整数输入时每个值必须在 0-255 范围
- 字符串输入必须指定编码参数
- 与
bytes的互操作:bytes(bytearray_obj)可转回不可变对象