bytearray() 函数是 Python 中的一个内置函数,用于创建和操作可变的字节序列。与不可变的 bytes 类型不同,bytearray 允许用户修改其内容。
什么是 bytearray?
bytearray 是一种可变的字节序列,它允许对数据进行修改,非常适合需要频繁修改数据的应用场景。例如,在处理二进制文件或网络数据时,bytearray 可以提供更灵活的操作方式。
创建 bytearray 对象
可以使用多种方法来创建 bytearray 对象:
- 从整数列表创建:传递一个整数列表,每个元素代表一个字节。
- 从字符串创建:通过指定编码格式将字符串转换为字节序列。
- 从字节对象创建:将现有的
bytes对象转换为bytearray。
示例代码
// www.javascriptcn.com code example
# 从整数列表创建
byte_array_from_list = bytearray([65, 66, 67])
print(byte_array_from_list) # 输出: bytearray(b'ABC')
# 从字符串创建
byte_array_from_string = bytearray("你好", 'utf-8')
print(byte_array_from_string) # 输出: bytearray(b'\xe4\xbd\xa0\xe5\xa5\xbd')
# 从 bytes 对象创建
original_bytes = b'hello'
byte_array_from_bytes = bytearray(original_bytes)
print(byte_array_from_bytes) # 输出: bytearray(b'hello')修改 bytearray 对象
bytearray 的一个重要特点是它的可变性,这意味着你可以随时修改它的内容。
修改示例
# 创建一个 bytearray 对象
data = bytearray('hello', 'utf-8')
# 修改特定位置的字节
data[0] = 72 # ASCII 编码的 'H'
# 打印修改后的 bytearray
print(data) # 输出: bytearray(b'Hello')bytearray 的常用方法
bytearray 提供了丰富的内置方法,使你能够高效地操作字节序列。
常用方法示例
// www.javascriptcn.com code example
data = bytearray('hello', 'utf-8')
# append 方法添加新字节
data.append(33) # 添加 ASCII 编码的 '!'
print(data) # 输出: bytearray(b'hello!')
# extend 方法扩展现有数据
data.extend(bytearray(' world', 'utf-8'))
print(data) # 输出: bytearray(b'hello! world')
# insert 方法插入新字节
data.insert(5, ord(' ')) # 在位置 5 插入空格
print(data) # 输出: bytearray(b'hello ! world')
# remove 方法删除指定值
data.remove(ord('!')) # 删除 ASCII 编码的 '!'
print(data) # 输出: bytearray(b'hello world')bytearray 的其他功能
除了基本的增删改查之外,bytearray 还支持许多其他功能,如反转、排序等。
反转示例
data = bytearray('hello', 'utf-8')
data.reverse()
print(data) # 输出: bytearray(b'olleh')排序示例
data = bytearray('world', 'utf-8')
sorted_data = sorted(data)
print(sorted_data) # 输出: [100, 111, 114, 108, 119]总结
bytearray 是 Python 中处理二进制数据的强大工具。它的可变性和丰富的内置方法使其成为处理需要频繁修改的字节序列的理想选择。通过上述示例,我们可以看到如何创建、修改以及利用 bytearray 进行各种操作。希望本章的内容能帮助你更好地理解和应用 bytearray 在实际项目中。