Python 如何将十六进制字符串转换为十六进制?
我有一个十六进制字符串列表Python 如何将十六进制字符串转换为十六进制?,python,Python,我有一个十六进制字符串列表 mylist = ['0xff', '0x34', '0x95', '0x11'] 我想把这个列表放到另一个列表中,但是用十六进制格式。因此,列表应该是这样的 myhexlist = ['\xff', '\x34', '\x95', '\x11'] 我所尝试的: #!/usr/bin/env python myhexlist = [] mylist = ['0xff', '0x34', '0x95', '0x11'] for b in mylist:
mylist = ['0xff', '0x34', '0x95', '0x11']
我想把这个列表放到另一个列表中,但是用十六进制格式。因此,列表应该是这样的
myhexlist = ['\xff', '\x34', '\x95', '\x11']
我所尝试的:
#!/usr/bin/env python
myhexlist = []
mylist = ['0xff', '0x34', '0x95', '0x11']
for b in mylist:
myhexlist.append( hex(int(b,16)) )
print myhexlist
它不会产生所需的输出。您希望使用
chr
而不是hex
(它只是反转转换)
此外,使用列表理解比使用附加到列表的循环更有效
>>> myhexlist = [chr(int(hex_str, 16)) for hex_str in mylist]
>>> myhexlist
['\xff', '4', '\x95', '\x11']
(显然,对于可打印字符,您不会得到
\x##
。为什么不直接用\x
替换0x
?例如,myhexlist=[i.replace(“0x”,“\\x”)表示mylist中的i]
。这将保持数据类型与字符串相同。尼古拉斯的回答正是我想要做的。