Python 如何将布尔值列表转换为单个整数,其中每个布尔值都被解释为一个位?
我有一个布尔列表,我想把它转换成一个整数。例如:[真,真,假,真,假]->010112->1110 我发现了这个问题:但它是用C写的,这对我没有帮助 我的第一次尝试是 def bools2intbools: n=0 对于bools中的b[:-1]: n*=2 n+=b 返回n 这很有效 但是有没有更像蟒蛇的方法呢?可以在一行中完成吗?IIUC,使用内置intx,base=2: 输出:Python 如何将布尔值列表转换为单个整数,其中每个布尔值都被解释为一个位?,python,list,type-conversion,int,boolean,Python,List,Type Conversion,Int,Boolean,我有一个布尔列表,我想把它转换成一个整数。例如:[真,真,假,真,假]->010112->1110 我发现了这个问题:但它是用C写的,这对我没有帮助 我的第一次尝试是 def bools2intbools: n=0 对于bools中的b[:-1]: n*=2 n+=b 返回n 这很有效 但是有没有更像蟒蛇的方法呢?可以在一行中完成吗?IIUC,使用内置intx,base=2: 输出: 11 IIUC,使用内置intx,基=2: 输出: 11 经过一番周旋,我找到了这个 sum[b经过一番胡闹
11
IIUC,使用内置intx,基=2:
输出:
11
经过一番周旋,我找到了这个
sum[b经过一番胡闹,我发现了这个
总和[b对于您给出的示例,bools2int函数返回52,而不是11。这使得猜测您真正想要做的事情几乎不可能。请尝试更仔细的解释,并提供清晰的示例?因此,您的意图是输入是二进制表示中的位列表,最低有效位在前?如果是这样的话,这很好,但是您的ols2int根本没有实现这一点,因此这个问题仍然存在固有的困惑。很抱歉,我已经修复了这个函数,它应该可以正常工作。对于您给出的示例,bools2int函数返回52,而不是11。这使得猜测您真正要做的事情几乎不可能。请尝试更仔细的解释,使用清晰的examples?那么您的意图是输入是二进制表示中的位列表,最低有效位优先?如果是这样的话,这很好,但是bools2int根本没有实现这一点,所以问题仍然是固有的困惑。很抱歉,我修复了函数,它应该按预期工作。