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