我有这样的十六进制列表 [' 0x1',' 0x3',' 0x2',' 0x0',' 0x0',' 0x10',' 0x4',' 0x0',' 0x0',' 0xfa',' 0x4']
我打算通过USB发送它,所以我需要转换成bytearray,在python中有可用的方法吗?
答案 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]