Ple*_*yos 3 python int boolean list type-conversion
我有一个 s 列表bool,我想将其转换为单个int. 例如:[True, True, False, True, False]-> 01011 2 -> 11 10
我发现这个问题:How do I conversion a boolean list to int? 但它是用 C# 编写的,这对我没有帮助。
我的第一次尝试是做
def bools2int(bools):
n = 0
for b in bools[::-1]:
n *= 2
n += b
return n
Run Code Online (Sandbox Code Playgroud)
这有效。
但是有没有更Pythonic的方法来做到这一点?可以一行完成吗?
IIUC,使用内置int(x, base=2):
l = [True, True, False, True, False]
def bool2int(bools):
return int(''.join(str(int(i)) for i in reversed(bools)), 2)
bool2int(l)
Run Code Online (Sandbox Code Playgroud)
输出:
11
Run Code Online (Sandbox Code Playgroud)