繁体   English   中英

如何将布尔数组转换为字符串表示形式?

[英]How to convert an array of Booleans to a string representation?

想像这样转换布尔的imagehash数组:

array([[False, False, False,  True, False, False,  True,  True],
       [False, False, False,  True,  True,  True,  True,  True],
       [False,  False, False,  True,  True,  True,  True,  True],
       [False,  True,  True,  True,  True,  True,  True,  True],
       [False,  True,  True,  True,  True,  True, False, False],
       [False,  True,  True,  True,  True,  True,  True, False],
       [False, False,  True, False, False, False,  True, False],
       [False, False, False, False, False, False,  True,  True]]))

使用Python 2.7 94b1b9fcfcfcf0f0为类似94b1b9fcfcfcf0f0的字符串表示94b1b9fcfcfcf0f0 ,反之亦然。

我该如何实现?

下面的代码将您的布尔值转换为0/1并从这些数字中获取十六进制值(8个二进制数字最多提供2个十六进制字符(从00到ff) zfill用于填充小于零的左零。 128. [2:]去除十六进制表示形式( 0x )。

hexstring = "".join([str(hex(int("{}".format("".join(["1" if elem else "0" for elem in line])), 2)))[2:].zfill(2) for line in array])
print(hexstring)

PS此解决方案仅意味着纯Python- array变量包含一个列表列表:

array = [
    [False, False, False, True, False, False, True, True],
    [False, False, False, True, True, True, True, True],
    [False, False, False, True, True, True, True, True],
    [False, True, True, True, True, True, True, True],
    [False, True, True, True, True, True, False, False],
    [False, True, True, True, True, True, True, False],
    [False, False, True, False, False, False, True, False],
    [False, False, False, False, False, False, True, True],
]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM