Python 内建函数列表 > Python 的内置函数 bytearray
class bytearray(x=b''):
'''
创建 bytearray
:param x: 要转换的变量
:return: x 转换为 bytearray 后的值
'''
Python 的内置函数 bytearray 是一个可变序列,用于存储字节数据。它类似于 bytes 类型,但主要区别在于 bytearray 是可变的,而 bytes 是不可变的。以下是关于 bytearray 的详细说明和使用场景:
1. 基本语法
bytearray([source[, encoding[, errors]]])
- source(可选):可以是整数、字符串、可迭代对象或缓冲区对象。
- encoding(可选):如果 source 是字符串,需要指定编码格式(如
'utf-8')。 - errors(可选):指定编码错误处理方式(如
'strict'、'ignore'、'replace')。
2. 创建 bytearray 的方式
(1) 创建空 bytearray
ba = bytearray()
print(ba) # 输出:bytearray(b'')
(2) 指定长度的 bytearray(整数初始化)
ba = bytearray(5) # 创建 5 个字节,默认值为 0
print(ba) # 输出:bytearray(b'\x00\x00\x00\x00\x00')
(3) 从字符串转换
ba = bytearray("hello", "utf-8")
print(ba) # 输出:bytearray(b'hello')
(4) 从迭代对象(如列表)转换
ba = bytearray([65, 66, 67]) # ASCII 码对应 A, B, C
print(ba) # 输出:bytearray(b'ABC')
(5) 从 bytes 转换
b = b"example"
ba = bytearray(b)
print(ba) # 输出:bytearray(b'example')
3. bytearray 的特性
- 可变性:可以修改其中的字节值。
ba = bytearray(b"hello") ba[0] = 72 # 修改第一个字节为大写 'H' print(ba) # 输出:bytearray(b'Hello') - 支持列表操作:
- 可以添加、删除、修改元素。
- 支持切片操作。
4. 常见应用场景
- 二进制数据处理:适用于解析或修改二进制文件、网络协议等场景。
data = bytearray(b"\x01\x02\x03") data.append(4) # 添加字节 0x04 - 临时缓冲区:需要动态修改的二进制数据缓冲区。
buffer = bytearray() buffer.extend(b"data") - 文本处理(编码转换):如从不同编码格式转换字节数据。
text = "你好" ba = bytearray(text.encode("utf-8"))
5. 与 bytes 的区别
| 特性 | bytearray | bytes |
|————–|————|———|
| 可变性 | ✅ 可修改 | ❌ 不可修改 |
| 性能 | 稍慢(可变开销) | 更快(不可变优化) |
| 适用场景 | 需要动态修改字节 | 固定不变的二进制数据 |
6. 总结
bytearray 提供了一种灵活的方式处理可变二进制数据,适用于需要动态修改字节的场景,如网络通信、二进制文件操作等。如果数据不需要修改,建议使用 bytes 以提高性能。