Python中hexstring、list与str的相互转换详解

Dylan
Dylan
发布时间:2026-10-13 | 5人浏览过
原创

本文详细介绍Python中hexstring、list和str三种数据类型的相互转换方法。通过bytearray和binascii模块,实现整形列表与十六进制字符串及字节串的高效转换,适用于加密库如pyDes的数据处理场景。

Python数据格式转换概述

在Python进行数据处理时,经常需要处理以下三种格式的数据:

十六进制字符串(hexstring),例如:'1C532145697A8B6F'

字节字符串(str),例如:'\x1C\x53\x21\x45\x69\x7A\x8B\x6F'

整数列表(list),例如:[0x1C, 0x53, 0x21, 0x45, 0x69, 0x7A, 0x8B, 0x6F]

在使用第三方模块(如pyDes)或自定义接口时,常因类型不匹配而需要在上述三种格式间进行转换。

实现转换主要依赖以下核心方法:

list():将对象转换为列表

str():将对象转换为字符串

bytearray():将对象转换为字节数组

bytearray.fromhex():将十六进制字符串转换为字节数组

binascii.b2a_hex():将字符串转换为十六进制字符串

整数列表与字符串互转

1. 整数列表转字符串(str)

示例:[0x53, 0x21, 0x6A] -> '\x53\x21\x6a'

转换路径:list -> bytearray -> str


x = [0x53, 0x21, 0x6A]
y = str(bytearray(x))

2. 字符串(str)转整数列表

示例:'\x53\x21\x6a' -> [0x53, 0x21, 0x6A]

转换方法:逐个字符转换为十进制数值


x = '\x53\x21\x6a'
y = [ord(c) for c in x]

整数列表与十六进制字符串互转

3. 整数列表转换为十六进制字符串(hexstring)

示例:[0x53, 0x21, 0x6A] -> '53216A'

转换路径:list -> bytearray -> str -> hexstring


import binascii
x = [0x53, 0x21, 0x6A]
y = str(bytearray(x))
z = binascii.b2a_hex(y)

4. 十六进制字符串(hexstring)转换为整数列表

示例:'53216A' -> [0x53, 0x21, 0x6A]

转换路径:hexstring -> bytearray -> list


x = '53216A'
y = bytearray.fromhex(x)
z = list(y)

十六进制字符串与字符串互转

5. 十六进制字符串(hexstring)转换为字符串(str)

示例:'53216A' -> '\x53\x21\x6A'

转换路径:hexstring -> bytearray -> str


x = '53216A'
y = bytearray.fromhex(x)
z = str(y)

以上即为Python中hexstring、list与str相互转换的完整方法,供参考使用。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表