【python学习】bytearray 数组

在Python中,bytearray 是一个可变序列,用于表示一个字节数组。与不可变的 bytes 类型相比,bytearray 允许你修改其内容。你可以通过索引来访问和修改 bytearray 中的元素,也可以添加或删除元素。

使用 bytearray 的一些示例:

# 创建一个空的 bytearray

ba = bytearray()

print(ba) # 输出: bytearray(b'')



# 创建一个包含初始值的 bytearray

ba = bytearray([0x11, 0x22, 0x33])

print(ba) # 输出: bytearray(b'\x11\x22\x33')



# 访问 bytearray 中的元素

print(ba[0]) # 输出: 17(0x11 的十进制表示)



# 修改 bytearray 中的元素

ba[1] = 0x44

print(ba) # 输出: bytearray(b'\x11D\x33'),其中 'D' 是 0x44 的 ASCII 字符



# 添加元素到 bytearray 的末尾

ba.append(0x55)

print(ba) # 输出: bytearray(b'\x11D\x33U'),其中 'U' 是 0x55 的 ASCII 字符



# 从 bytearray 中删除元素

del ba[2]

print(ba) # 输出: bytearray(b'\x11D\x55')



# 将 bytes 转换为 bytearray

b = b'\x01\x02\x03'

ba = bytearray(b)

print(ba) # 输出: bytearray(b'\x01\x02\x03')



# 将 bytearray 转换为 bytes

b = bytes(ba)

print(b) # 输出: b'\x01\x02\x03'</
### 创建和操作16字节数组 #### 使用`bytearray`创建固定大小的字节数组 为了创建一个包含16个字节的数组,可以直接初始化一个具有指定长度的`bytearray`对象。这可以通过传递一个整数给构造器来完成,该整数值代表所需的字节数量。 ```python # 创建一个含有16个零值字节的字节数组 ba = bytearray(16) print(f"Created byte array with length {len(ba)}") # 显示创建后的字节数组长度[^1] ``` #### 设置特定位置上的单个字节 一旦有了这样的字节数组,就可以通过索引来设置其中任意位置的具体字节值。需要注意的是,所赋的新值应当是一个介于0到255之间的整数。 ```python # 修改第四个元素(索引3),设为十进制值75 ba[3] = 75 print(hex(ba[3])) # 输出修改后的位置上存储的数据作为十六进制形式[^4] ``` #### 将列表中的整数转化为字节数组 如果有一个由多个整数组成的序列,并希望将其转换成相应数量的字节,则可以利用`bytes()`或`bytearray()`方法并传入这个列表。 ```python int_list = [i for i in range(16)] # 建立从0至15的一系列整数 ba_from_list = bytearray(int_list) for index, value in enumerate(ba_from_list): print(f'Index:{index}, Value (Hex):{value:#04x}') # 展现各元素及其对应的十六进制表示法 ``` #### 向现有字节数组追加新数据 对于已经存在的字节数组来说,还可以向其末端添加新的字节。这里既可以逐个增加单独的一个字节,也能一次性加入整个其他类型的可迭代对象比如另一个字节数组或是列表。 ```python additional_bytes = [200, 201, 202] ba.extend(additional_bytes[:]) # 只取前三个额外字节附加到原字节数组后面 print(list(ba)) # 查看更新过的内容 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值