gpt4 book ai didi

python - 是否有更 pythonic 的方法将 bool 值列表转换为整数?

转载 作者:行者123 更新时间:2023-11-28 20:54:49 25 4
gpt4 key购买 nike

我觉得问这个问题很愚蠢,但我的内存让我想不出更好的选择。我想到了两种方法:

首先:

def f1(v):
return sum(2**i for i,va in enumerate(v) if va)

>>> f1([True, False, True])
5

第二个:

def f2(v):
return int('0b' + "".join(str(int(va)) for va in v),2)

>>> f2([True, False, True])
5

我觉得 f1 几乎是笨拙的 pythonic,而 f2 显然太丑了,因为我在多种数据类型之间跳转。也许是我的年龄...?

最佳答案

使用左移比提升到幂要快一点(至少在我的机器上是这样)。使用按位运算鼓励代码的读者从二进制数据的角度思考。

>>> sum(v << i for i, v in enumerate([True, False, True]))
5

关于python - 是否有更 pythonic 的方法将 bool 值列表转换为整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58798388/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com