如何在Python中将十六进制值列表转换为字节数组

时间:2017-09-13 07:28:30

标签: python arrays

我有这样的十六进制列表 [' 0x1',' 0x3',' 0x2',' 0x0',' 0x0',' 0x10',' 0x4',' 0x0',' 0x0',' 0xfa',' 0x4']

我打算通过USB发送它,所以我需要转换成bytearray,在python中有可用的方法吗?

1 个答案:

答案 0 :(得分:2)

这可以通过一个简单的单行表达式来解决

input = ['0x1', '0x3', '0x2', '0x0', '0x0', '0x10', '0x4', '0x0', '0x0', '0xfa', '0x4']
result = bytes([int(x,0) for x in input])

结果是

b'\x01\x03\x02\x00\x00\x10\x04\x00\x00\xfa\x04'

如果你实际上不想拥有一个字节数组,而是一个整数数组,只需删除bytes()

result = [int(x,0) for x in input]

结果是

[1, 3, 2, 0, 0, 16, 4, 0, 0, 250, 4]