十六进制字符串列表到十六进制文字
list of hex strings to hex literals
我有一个十六进制字符串列表:
lst = ['0x01', '0xfe', '0x02', '0xff']
我想将这个列表转换成十六进制文字。
输出应该是:
d = '\x01\xfe\x02\xff'
使用列表理解将字符串数据转换为整数,然后转换为字节:
>>> lst = ['0x01','0xfe','0x02','0xff']
>>> d = bytes([int(x,0) for x in lst])
>>> d
b'\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 ASCII
b'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
我想你可以做这样的事情。
print (''.join(['\'+x for x in lst]))
这个输出将是:
[=11=]x01[=11=]xfe[=11=]x02[=11=]xff
如果你想删除前导 0,那么你可以这样做:
print((''.join(lst)).replace('0x',r'\x'))
它会给你:
\x01\xfe\x02\xff
我有一个十六进制字符串列表:
lst = ['0x01', '0xfe', '0x02', '0xff']
我想将这个列表转换成十六进制文字。
输出应该是:
d = '\x01\xfe\x02\xff'
使用列表理解将字符串数据转换为整数,然后转换为字节:
>>> lst = ['0x01','0xfe','0x02','0xff']
>>> d = bytes([int(x,0) for x in lst])
>>> d
b'\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 ASCII
b'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
我想你可以做这样的事情。
print (''.join(['\'+x for x in lst]))
这个输出将是:
[=11=]x01[=11=]xfe[=11=]x02[=11=]xff
如果你想删除前导 0,那么你可以这样做:
print((''.join(lst)).replace('0x',r'\x'))
它会给你:
\x01\xfe\x02\xff