将字节字符串转换为列表的 Python 程序

pythonserver side programmingprogramming更新于 2023/12/28 22:53:00

字节字符串类似于字符串 (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() 函数在列表末尾添加元素。


相关文章