如何将bool列表转换为字符串? - Python 3.6.1

时间:2017-12-10 07:54:40

标签: string python-3.x list boolean

我正在尝试将bool列表转换为字符串,例如将[False, True, False, False, False, False, False, True]转换为'A'

那么怎么做(在python3中)?

3 个答案:

答案 0 :(得分:0)

正如@R Sahu在评论中指出的那样,你的意思是这样吗?

>>> lst = [False, True, False, False, False, False, False, True]
>>> binary = [1 if x else 0 for x in lst]
>>> bin_number = int("".join(map(str, binary)), 2)
>>> print(chr(bin_number))
A

答案 1 :(得分:0)

正如我在评论中所说,我建议使用一个适当的模块来处理像bitarray这样的位列表,但是如果你想自己做,这里有一个简单的方法:

bit_list = [False, True, False, False, False, False, False, True]
ascii_value = sum(v<<i for i, v in enumerate(reversed(bit_list)))
char_value = chr(ascii_value)
# A

答案 2 :(得分:0)

我将二进制数组转换为一串位,然后将其转换为整数,然后将其转换为字符。

bits = [False, True, False, False, False, False, False, True]
print(chr(int(''.join("01"[a] for a in bits),2)))