2013-10-16 200 views
0

我有一個十六進制字符串的列表。如何將十六進制字符串轉換爲十六進制?

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 

不產生所需的輸出。

+0

爲什麼不直接用'\ x'代替'0x'?例如,'myhexlist = [i.replace(「0x」,「\\ x」)表示我在mylist中]'。 –

+0

這將保持數據類型與字符串相同。尼古拉斯的回答就是我想要做的。 – user791953

回答

2

你想使用chr而不是hex(它只是反轉轉換)。

另外,使用列表理解而不是附加到列表的循環會更高效。

>>> myhexlist = [chr(int(hex_str, 16)) for hex_str in mylist] 
>>> myhexlist 
['\xff', '4', '\x95', '\x11'] 

(顯然你不會得到一個可打印的字符\x##)。

相關問題