一. 简介
Python3 引入两个新的类型 bytes、bytearray。字节串类型(bytes)用于表示不可变的二进制数据。而 bytearray 类型表示的是可变的字节数组,这意味着可以直接更改 bytearray对象中的元素。
本文来简单学习一下python3中 bytearray类型。
二. python3 中 bytearray数据类型
1. 创建 bytearray类型
(1) 创建一个 空的 bytearray对象,然后可以逐条添加元素,下面来举例说明:
b = bytearray()
b.append(97)
b.append(98)
print(b) #输出 bytearray(b'ab')
(2) 从一个 byte对象,转化为 bytearray类型对象:
b = b'hello world'
byte_array = bytearray(b)
print(byte_array) #输出 bytearray(b'hello world')
(3) 从字符串转化为 bytearray类型的对象,下面举例说明:
str = "hello python"
byte_array = bytearray(str, 'utf-8')
print(byte_array) #输出 bytearray(b'hello python')
(4) 将整数列表转化为 bytearray类型的对象,下面举例说明:
my_list = [9, 8, 7, 6, 5]
byte_array = bytearray(my_list)
print(byte_array)
2. bytearray 对象的常见操作
bytearray类型对象是可变的字节数组。所以,支持增删改查操作。
(1) 访问 bytearray对象中的元素。
可以使用索引访问 bytearray对象中的元素,或者使用截取来访问多个元素。下面来举例说明:
data = bytearray(b'hello,world!')
print(data[0]) #输出 104
print(data[5]) #输出 44
通过使用循环来遍历 bytearray中的每个字节,下面来举例说明:
byte_array = bytearray(b'python')
for data in byte_array:
print(data, chr(data))
输出如下:
(2) 向 bytearray对象加入新的元素。
可以使用 append方法向 bytearray对象中添加一个新的元素,即添加一个字节,下面来举例说明:
byte_array = bytearray(b'hello')
byte_array.append(ord('!'))
print(byte_array) #输出bytearray(b'hello!')
(3) 更改 bytearray对象中的元素。
可以通过索引来修改 bytearray对象中的元素,举例说明:
byte_array = bytearray(b'hello')
byte_array[0] = ord('H')
print(byte_array) #输出:bytearray(b'Hello')
(4) 删除 bytearray对象中的元素。
pop() 方法可以删除并返回 bytearray对象中的最后一个元素,举例说明:
byte_array = bytearray(b'hello')
last_byte = byte_array.pop()
print(last_byte.to_bytes(1, byteorder='big')) #输出 b'o'
使用 pop([i]) 方法移除并返回指定索引处的字节,举例说明:
byte_array = bytearray(b'hello')
byte_array.pop(1)
print(byte_array) #输出 b'hllo'
(5) bytearray类型对象转换为字符串
可以通过 decode() 方法将 bytearray类型的对象转化为字符串,也可以使用 encode() 方法将字符串转化为 bytearray类型,下面举例说明:
使用 decode()方法将 bytearray类型对象转化为字符串:
byte_array = bytearray(b'hello')
str = byte_array.decode()
print(str) #输出:hello
使用 encode()方法将 字符串转化为 bytearray类型对象:
str = "python"
byte_array = str.encode()
print(byte_array) #输出 b'python'
关于 bytearray类型的数据暂时学习到这里。加油!