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

银河系

想像这样转换布尔值的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]]))

94b1b9fcfcfcf0f0使用 Python 2.7进行字符串表示,反之亦然。

我怎样才能做到这一点?

伊帕莱卡

以下代码将您的布尔值转换为 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],
]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章