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


字节字符串类似于字符串(Unicode),但它包含一系列字节而不是字符。处理纯ASCII文本而不是Unicode文本的应用程序可以使用字节字符串。

在Python中将字节字符串转换为列表提供了兼容性、可修改性和更容易访问单个字节的功能。它允许与其他数据结构无缝集成,方便修改元素,并能够有效地分析和操作字节字符串的特定部分。

演示

假设我们已经获取了一个输入字节字符串。我们现在将使用上述方法将给定的字节字符串转换为ASCII值的列表,如下所示。

输入

inputByteString = b'Tutorialspoint'

输出

List of ASCII values of an input byte string:
[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值的列表。

# input byte string
inputByteStr = b'Tutorialspoint'

# converting the input byte string into a list
# which contains the ASCII values as a list of an input byte string
print("List of ASCII values of an input byte string:")
print(list(inputByteStr))

输出

执行上述程序后,将生成以下输出

List of ASCII values of an input byte string:
[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值的列表。

# input byte string
inputByteStr = 'Tutorialspoint'
# empty list for storing the ASCII values of input byte string characters
resultantList = []
# traversing through each character of the input byte string
for c in inputByteStr:
    # getting the ASCII value of each character using the ord() function
    # and appending it to the resultant list
    resultantList.append(ord(c))
# Printing the Unicode/ASCII values of an input byte string
print("List of ASCII values of an input byte string:", resultantList)

输出

执行上述程序后,将生成以下输出

List of ASCII values of an input byte string: [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。此参数指示是否表示数字的二进制补码。

示例

以下程序使用from_bytes()函数将给定的输入字节字符串转换为列表

# input byte string
inputByteStr  = b'\x00\x01\x002'
# Converting the given byte string to int 
# Here big represents the byte code
intValue = int.from_bytes(inputByteStr , "big")
# Printing the integer value of an input byte string
print(intValue)

输出

65586

结论

本文向我们介绍了三种将给定字节字符串转换为列表的不同方法。此外,我们还学习了如何使用ord()函数获取字符的ASCII值。最后,我们学习了如何使用append()函数在末尾将元素添加到列表中。

更新于: 2023年8月17日

2K+浏览量

开启您的职业生涯

通过完成课程获得认证

开始学习
广告