我正在尝试将bool列表转换为字符串,例如将[False, True, False, False, False, False, False, True]
转换为'A'
那么怎么做(在python3中)?
答案 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)))