0

16進文字列のリストがあります。

mylist = ['0xff', '0x34', '0x95', '0x11']

このリストを別のリストに取得したいのですが、16 進形式です。したがって、リストは次のようになります。

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

これは、目的の出力を生成しません。

4

1 に答える 1

2

chrではなくhex(変換を逆にするだけです)を使用したい。

また、リストに追加するループではなく、リスト内包表記を使用する方が効率的です。

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

(明らかに、印刷可能な文字の を取得するつもりはありません\x##)。

于 2013-10-16T20:06:26.777 に答える