Python从十六进制字节创建数组

Python从十六进制字节创建数组,python,arrays,string,hex,Python,Arrays,String,Hex,我有以下字符串: "0c a8 f0 d6 02 00 00 00 00 d0 1c d1 10 d2 00 d3 00 d7 01 d4 78 20 ff" 如您所见,它包含十六进制值,我希望使用Python 2.4.4而不是3.x将其转换为字节数组,因此我没有有用的bytearray。据我所知,实现这一目标的唯一途径是: i = [] i.append(0x0c) i.append(0xa8) i.append(0xf0) # ... and so on ..... z = ''.join

我有以下字符串:

"0c a8 f0 d6 02 00 00 00 00 d0 1c d1 10 d2 00 d3 00 d7 01 d4 78 20 ff"
如您所见,它包含十六进制值,我希望使用Python 2.4.4而不是3.x将其转换为字节数组,因此我没有有用的bytearray。据我所知,实现这一目标的唯一途径是:

i = []
i.append(0x0c)
i.append(0xa8)
i.append(0xf0) # ... and so on
.....
z = ''.join(chr(c) for c in i)

但这太可怕了。有什么好的提示可以有效地解决这个问题吗?

您可以解码字符串,替换所有空格

'0c a8 f0 d6 02 00 00 00 00 d0 1c d1 10 d2 00 d3 00 d7 01 d4 78 20 ff'.replace(' ', '').decode('hex')
s = "0c a8 f0 d6 02 00 00 00 00 d0 1c d1 10 d2 00 d3 00 d7 01 d4 78 20 ff"
x = s.replace(" ", "").decode('hex')
或者您可以使用生成器语句作为示例

x = ''.join(chr(int(i, 16)) for i in  s.split())

您可以解码替换所有空白的字符串

s = "0c a8 f0 d6 02 00 00 00 00 d0 1c d1 10 d2 00 d3 00 d7 01 d4 78 20 ff"
x = s.replace(" ", "").decode('hex')
或者您可以使用生成器语句作为示例

x = ''.join(chr(int(i, 16)) for i in  s.split())