Python bytearray()函数

bytearray是 Python 中的一个内置类,用于表示二进制数据。与 bytes类似,bytearray也是不可变的序列,但是它可以通过索引来修改其中的元素,因此可以用于一些需要修改二进制数据的场合。

bytearray 类的语法如下:

bytearray([source[, encoding[, errors]]])

其中:

  • source:可以是一个整数、一个包含整数的可迭代对象、一个字符串、一个 bytes 对象或一个可读取对象;
  • encoding:如果source是字符串,则需要指定字符编码;
  • errors:指定编码错误的处理方式,缺省值为 'strict';

bytearray 常用操作

  • len(bytearray_object):返回 bytearray_object 中的字节数。
  • bytearray_object[index] = value:修改 bytearray_object 中索引为 index 的字节为 value。
  • bytearray_object.append(value):在 bytearray_object 的末尾添加一个字节 value。
  • bytearray_object.extend(iterable):将可迭代对象 iterable 中的所有字节追加到 bytearray_object 的末尾。
  • bytearray_object.decode(encoding='UTF-8', errors='strict'):将 bytearray_object 解码为字符串。
  • bytearray_object.hex():返回 bytearray_object 的十六进制表示。

示例代码

# 创建一个空的 bytearray
b = bytearray()

# 通过追加字节来构建 bytearray
b.append(97) # 'a'
b.append(98) # 'b'
b.append(99) # 'c'

# 输出 bytearray
print(b)          # bytearray(b'abc')
print(len(b))     # 3

# 修改 bytearray
b[1] = 100        # 将 b[1] 修改为 100
print(b)          # bytearray(b'adc')

# 使用迭代器扩展 bytearray
b.extend([101, 102, 103])
print(b)          # bytearray(b'adcefg')

# 将 bytearray 转换为字符串
s = b.decode('ascii')
print(s)          # 'adcefg'

# 将字符串转换为 bytearray
b = bytearray('hello', 'ascii')
print(b.hex())    # '68656c6c6f'

注意,bytearraybytes非常类似,但是由于bytearray可以修改元素,因此它的性能比bytes要略低一些。在不需要修改二进制数据的情况下,建议使用bytes类型。

原创内容,如需转载,请注明出处;

本文地址: https://www.perfcode.com/python-built-in-functions/python-bytearray.html

分类: 计算机技术
推荐阅读:
cannot fallthrough final case in switch的解决方法 在Go语言中,fallthrough 用于 switch 语句的 case 块中,它将会在当前 case 块执行完后执行下一个 case 块,不论下个 case 块条件是否匹配,但如果 fallthrough 后没有 case ,则会产生 cannot fallthrough final case in switch 的错误。
Linux使两个文件的权限相同 在Linux系统下,你可以使用一条命令就能令两个文件的权限相同;
C语言strncpy()函数:复制字符串中的n个字符 strncpy()是C语言标准库中的一个字符串复制函数,用于将一个字符串的n个字符复制到另一个字符串中;
PySide6 动态创建按钮数组 动态创建按钮数组在许多场合非常有用,特别是当你需要根据用户输入、数据量或其它条件来生成界面元素时;本片将演示如何使用PySide6来动态的创建按钮数组,并正确响应对应按钮的点击信号;
Rust爬取网页上的所有链接 要在Rust中爬取网页上的所有链接,可以使用一些Rust的库,例如reqwest和scraper。
CreateThread()创建线程传递SOCKET参数 使用CreateThread()创建线程传递SOCKET参数的正确方法如下: