【发布时间】:2020-01-08 21:54:39
【问题描述】:
我有一个bools 列表,我想将其转换为单个int。例如:[True, True, False, True, False] -> 010112 -> 1110
我发现了这个问题:How do I convert a boolean list to int?,但它在 C# 中,这对我没有帮助。
我的第一次尝试是做
def bools2int(bools):
n = 0
for b in bools[::-1]:
n *= 2
n += b
return n
哪个有效。
但是有没有更多的 pythonic 方法来做到这一点?可以一行完成吗?
【问题讨论】:
-
您的
bools2int函数返回 52,而不是 11。这使得猜测您真正想要做什么几乎是不可能的。尝试更仔细的解释,用清晰的例子? -
所以你的意图是输入是二进制表示中的位列表,最低有效位在前?如果是这样,那很好,但是您的
bools2int根本没有实现这一点,所以这个问题本质上仍然很困惑。 -
很抱歉,我修复了这个功能,它应该可以按预期工作。
标签: python list type-conversion int boolean