Python: boolean 列表到二进制字符串

标签 python list binary boolean

在python中将 boolean 值列表转换为二进制字符串的最快方法是什么?

例如boolList2BinString([True, True, False]) = '0b110'。

另外,我如何将该二进制字符串转换为二进制文字?这会比从 boolean 列表立即转换为二进制文字需要更多时间吗?怎么做呢?

例如boolList2Bin([True, True, False]) = 0b110。

谢谢!

最佳答案

关于您的第一个问题,您可以使用 list comprehension * 和 conditional expression :

>>> def boolList2BinString(lst):
...     return '0b' + ''.join(['1' if x else '0' for x in lst])
...
>>> boolList2BinString([True, True, False])
'0b110'
>>>

关于您的第二个,您不能“将该二进制字符串转换为二进制文字”。顾名思义,literals必须按字面输入:
>>> x = 0b110
>>>

也许您的意思是希望从输出中删除引号?如果是这样,请使用 print :
>>> def boolList2BinString(lst):
...     return '0b' + ''.join(['1' if x else '0' for x in lst])
...
>>> boolList2BinString([True, True, False])
'0b110'
>>> print(boolList2BinString([True, True, False]))
0b110
>>>

*注:我故意选择使用列表推导式 str.join而不是生成器表达式,因为前者是 generally faster .

关于Python: boolean 列表到二进制字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22056486/

相关文章:

python - 如何将值从一个对话框传递到另一个对话框

python - 获取数组范围的开始和结束

python - 将注释放在多行列表文字中

c# - 如何用零填充二进制字符串?

python - 在 Django 中更新 DOM 而无需重新加载页面

python - 如何使用字符串中的每个字符来表示列表中每个整数的结果?

python - 在python中创建随机数列表

python - 十进制转二进制,如何得到8位二进制?

algorithm - 二进制到十进制(大数)

python - 使用 Regularpolycollection 在 Python 中创建六边形网格(u 矩阵)