将字节字符串转换为列表的 Python 程序
字节字符串类似于字符串 (Unicode),只不过它包含的是一系列字节而不是字符。处理纯 ASCII 文本而非 Unicode 文本的应用程序可以使用字节字符串。
在 Python 中将字节字符串转换为列表提供了兼容性、可修改性和对单个字节的更轻松访问。它允许与其他数据结构无缝集成,便于修改元素,并能够高效地分析和操作字节字符串的特定部分。
演示
假设我们已经获取了一个输入字节字符串。现在,我们将使用上述方法将给定的字节字符串转换为如下所示的 ASCII 值列表。
输入
inputByteString = b'Tutorialspoint'
输出
输入字节字符串的 ASCII 值列表: [84, 117, 116, 111, 114, 105, 97, 108, 115, 112, 111, 105, 110, 116]
使用的方法
以下是完成此任务的各种方法:
使用list() 函数
使用 for 循环和 ord() 函数
使用 from_bytes() 函数
方法 1:使用 list() 函数
此方法将演示如何使用 Python 的简单 list() 函数将字节字符串转换为列表字符串。
list() 函数
返回可迭代对象的列表。这意味着它将可迭代对象转换为列表。
语法
list([iterable])
算法(步骤)
以下是执行所需任务所要遵循的算法/步骤 –。
创建一个变量来存储输入字节字符串。
使用list()函数将输入字节字符串转换为包含输入字节的 ASCII 值的列表,方法是将输入字节字符串作为参数传递,然后打印结果列表。
示例
以下程序将输入字节字符串转换为列表,并使用 list() 函数返回输入字节字符串的 ASCII 值列表 –
# 输入字节字符串 inputByteStr = b'Tutorialspoint' # 将输入字节字符串转换为列表 # 其中包含 ASCII 值作为输入字节字符串的列表 print("输入字节的 ASCII 值列表string:") print(list(inputByteStr))
输出
执行时,上述程序将生成以下输出
输入字节字符串的 ASCII 值列表: [84, 117, 116, 111, 114, 105, 97, 108, 115, 112, 111, 105, 110, 116]
方法 2:使用 for 循环和 ord() 函数
在此方法中,我们将使用 python 的简单 for 循环和 ord() 函数的组合将给定的字节字符串转换为列表。
ord() 函数
以数字形式返回给定字符的 Unicode 代码。
语法
ord(char)
参数
char:输入字节字符串。
算法(步骤)
以下是执行所需任务需要遵循的算法/步骤
创建一个变量来存储输入字节字符串。
创建一个空列表用于存储输入字节字符串字符的 ASCII 值。
使用for 循环遍历输入字节的每个字符字符串。
使用 ord() 函数(以数字形式返回给定字符的 Unicode 代码/ASCII 值)获取每个字符的 ASCII 值。
使用 append() 函数将其附加到结果列表中(将元素添加到列表末尾)。
打印输入字节字符串的 Unicode/ASCII 值,即将字节字符串转换为列表。
示例
以下程序将输入字节字符串转换为列表,并使用 for 循环和 ord() 函数返回输入字节字符串的 ASCII 值列表 –
# 输入字节字符串 inputByteStr = 'Tutorialspoint' # 用于存储输入字节字符串字符的 ASCII 值的空列表 resultantList = [] # 遍历输入字节字符串的每个字符 for c in inputByteStr: # 使用 ord() 函数获取每个字符的 ASCII 值 # 并将其附加到结果列表中 resultantList.append(ord(c)) # 打印输入字节字符串的 Unicode/ASCII 值 print("输入字节字符串的 ASCII 值列表:", resultantList)
输出
执行时,上述程序将生成以下输出
输入字节字符串的 ASCII 值列表:[84, 117, 116, 111, 114, 105, 97, 108, 115, 112, 111, 105, 110, 116]
方法 3:使用 from_bytes() 函数
在此方法中,我们将了解如何使用 from_bytes() 函数将字节字符串转换为列表。
from_bytes() 函数
要将给定的字节字符串转换为等效的 int 值,请使用 from_bytes() 函数。
语法
int.from_bytes(bytes, byteorder, *,signed=False)
参数
bytes:它是一个字节对象。
byteorder:它是整数值的表示顺序。在"小"字节顺序中,最高有效位存储在末尾,最低有效位存储在开头,而在"大"字节顺序中,MSB 放在开头,LSB 放在末尾。大字节顺序决定整数的 256 进制值。
signed: False 是其默认值。是否表示数字的 2 的补码由该参数指示。
示例
以下程序使用 from_bytes() 函数将给定的输入字节字符串转换为列表
# 输入字节字符串 inputByteStr = b'\x00\x01\x002' # 将给定的字节字符串转换为 int # 这里 big 代表字节码 intValue = int.from_bytes(inputByteStr , "big") # 打印输入字节字符串的整数值 print(intValue)
输出
65586
结论
本文教会了我们三种不同的方法将给定的字节字符串转换为列表。此外,我们还学习了如何使用 ord() 函数获取字符的 ASCII 值。最后,我们学习了如何使用 append() 函数在列表末尾添加元素。