Python3中bytes、HexStr与列表的相互转换详解

今天早睡
今天早睡
发布时间:2026-10-13| 4人浏览过
原创

本文详解Python3中bytes、HexStr与整形列表之间的转换方法。通过bytearray和binascii模块,实现列表转字符串、字符串转列表、HexStr互转等常见场景,提供核心代码示例,帮助开发者解决数据格式统一问题。

在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. 整形列表转换为字符串

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

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

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

2. 字符串转换为整形列表

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

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

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

3. 整形列表转换为十六进制字符串

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

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

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

4. 十六进制字符串转换为整形列表

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

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

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

5. 十六进制字符串转换为字符串

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

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

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

以上即为Python3中bytes与HexStr转换的完整解析,希望能为读者提供实用参考。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。