十六进制字符串到十六进制文字的列表

我有一个十六进制字符串列表:

lst = ['0x01', '0xfe', '0x02', '0xff']

我想将此列表转换为十六进制文字。

输出应该是:

d = '\x01\xfe\x02\xff'


MMTTMM
浏览 97回答 2
2回答

炎炎设计

使用列表理解将字符串数据转换为整数,然后转换为字节:>>> lst = ['0x01','0xfe','0x02','0xff']>>> d = bytes([int(x,0) for x in lst])>>> db'\x01\xfe\x02\xff'我假设您确实想要一个字节字符串,而不是 Unicode 字符串,因为它看起来像字节数据。要创建显示字符串,请格式化文字反斜杠并使用十六进制值设置 x。您可以通过切片字符串来获取十六进制值0x,但为了格式一致性(例如两位数,小写),您仍然可以转换为整数,然后使用格式字符串:>>> lst = ['0x43','0xfe','0x02','0xff']>>> bytes([int(x,0) for x in lst]) # actual byte string shows printable ASCIIb'C\xfe\x02\xff'>>> d = ''.join([f'\\x{int(v,0):02x}' for v in lst])  # display string of hex escape codes>>> d'\\x43\\xfe\\x02\\xff'>>> print(d)\x43\xfe\x02\xff

慕姐8265434

我认为你可以做这样的事情。print (''.join(['\\'+x for x in lst]))其输出将是:\0x01\0xfe\0x02\0xff如果你想删除前导 0,那么你可以这样做:print((''.join(lst)).replace('0x',r'\x'))它会给你:\x01\xfe\x02\xff
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python