将两个位列表合并为一个,然后将其转换为十六进制

时间:2016-12-18 14:43:16

标签: python-3.x

我有两个'位'列表:

Uncaught TypeError: Cannot read property 'drawThing' of undefined
at Controller.doThing (Controller.js:17)
at HTMLButtonElement.Controller.button.addEventListener (Controller.js:12)

我想要的是这两个列表的元素明智表示,例如:

a = [1, 1, 1, 1, 0, 0, 1]
b = [1, 0, 1, 1, 1, 1, 1]

最后我要将此var“c”转换为十六进制表示,例如。 h = 0x3BD7

我想到的是简单地循环元素并且将这两个列表(a& b)输入到C但是这看起来很愚蠢,特别是在python中我想知道是否还有其他“更聪明/更快”的方式这样做?

1 个答案:

答案 0 :(得分:0)

我建议使用zip合并两个列表,然后chain展开该结果,最后BitArray及其uint方法将其解释为系列位:

from itertools import chain
from bitstring import BitArray

a = [1, 1, 1, 1, 0, 0, 1]
b = [1, 0, 1, 1, 1, 1, 1]
num = BitArray(chain(*zip(a, b))).uint
print(hex(num)) # 0x3bd7