代码之家  ›  专栏  ›  技术社区  ›  Jan Matula

如何将布尔列表转换为字符串Python 3.6.1

  •  0
  • Jan Matula  · 技术社区  · 8 年前

    我试图将布尔列表转换为字符串,例如转换为 [False, True, False, False, False, False, False, True] 'A'

    那么如何做到这一点(在python3中)?

    3 回复  |  直到 8 年前
        1
  •  0
  •   RoadRunner    8 年前

    正如@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
    
        2
  •  0
  •   zwer    8 年前

    正如我在评论中所说,我建议使用适当的模块来处理位列表,如 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
    
        3
  •  0
  •   Neil    8 年前

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

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