python,字符串到十六进制数组

2024-09-27 19:17:11 发布

您现在位置:Python中文网/ 问答频道 /正文

快速提问,我想要这个(当然是Python3):

frame = "AAA555AAA555AAA555AAA555AAA555AAA555AAA555AAA555AAA555AAA555AAA"

为此:

frame = [0xA, 0xA, 0xA, 0x5, 0x5, 0x5, 0xA, 0xA, 0xA, 0x5, 0x5, 0x5, 0xA, 0xA, 0xA, 0x5, 0x5, 0x5, 0xA, 0xA, 0xA, 0x5, 0x5, 0x5, 0xA, 0xA, 0xA, 0x5, 0x5, 0x5, 0xA, 0xA, 0xA, 0x5, 0x5, 0x5, 0xA, 0xA, 0xA, 0x5, 0x5, 0x5, 0xA, 0xA, 0xA, 0x5, 0x5, 0x5, 0xA, 0xA, 0xA, 0x5, 0x5, 0x5, 0xA, 0xA, 0xA, 0x5, 0x5, 0x5, 0xA, 0xA, 0xA]

Tags: framepython3aaa555aaa555aaa555aaa555aaa555aaa555aaa555aaa555aaa555aaa555aaa
1条回答
网友
1楼 · 发布于 2024-09-27 19:17:11

我们可以试试这个:

frame = "AAA555AAA555AAA555AAA555AAA555AAA555AAA555AAA555AAA555AAA555AAA"
[int(character, 16) for character in frame]
# [10, 10, 10, 5, 5, 5, 10, 10, 10, 5, ... ]

正如@Reti43在a comment中所指出的那样,像0xA这样的十六进制值对应于像10这样的数字,这就是结果列表有整数的原因

如果OP需要十六进制,则可以使用以下字符串表示法。然后可以将该字符串传递给int以获得相应的整数

frame = "AAA555AAA555AAA555AAA555AAA555AAA555AAA555AAA555AAA555AAA555AAA"
[f"0x{character}" for character in frame]
# ['0xA', '0xA', '0xA', '0x5', '0x5', '0x5', '0xA', '0xA', '0xA', '0x5', ...]

相关问题 更多 >

    热门问题