Bool数组为整数

Kri*_*son 4 python python-3.x

在python中是否有任何构建函数来转换bool数组(表示字节中的位),如下所示:

p = [True, True, True, False, True, False, False, True]
Run Code Online (Sandbox Code Playgroud)

像这样的字节数组:

bp = byteArray([233])
Run Code Online (Sandbox Code Playgroud)

我知道哦numpy但我在python本身寻找的东西

sim*_*ack 7

这将做你想要的:

sum(v<<i for i, v in enumerate(p[::-1]))
Run Code Online (Sandbox Code Playgroud)

  • `reversed` 应该比切片 `[::-1]` 更好,因为在这种情况下你不需要副本。 (3认同)

Rug*_*rra 5

只需使用代数:

sum(2**i for i, v in enumerate(reversed(p)) if v)
Run Code Online (Sandbox Code Playgroud)