以十六进制打印整数列表字典

2024-04-26 11:22:57 发布

您现在位置:Python中文网/ 问答频道 /正文

在Python2.7中,我需要将包含多个整数列表的字典格式化为十六进制。你知道吗

我找到了一种将字典中的整数格式化为十六进制的方法。在本例中,hex将起作用,而hexlist将不起作用。你知道吗

dict = {
   "hex": 0x12,
   "hexlist": [0x13, 0x14]
}

print("{hex:x}, {hexlist:x}".format(**dict))

Python Sting Formatting - Real Python

还有一种方法可以将整数列表打印为十六进制,使用:

''.join('{:02X}'.format(hex) for hex in hexlist)

Format ints into string of hex

但我不知道如何把两者结合起来。。。你知道吗


Tags: 方法format列表for字典整数realdict
2条回答

我现在就这样解决了。检查类型的想法是关键。这个函数将输出一个元组,其中包含键和值的列表,我可以进一步处理它们。可能不是最优雅的解决方案,但这一点目前有效。你知道吗

def getHexMsg(message):
    strVal = []
    strKey = []
    for key, value in message.items():
        strKey.append("{}: ".format(key))
        if type(value) is list:
            strVal.append(' '.join('{:02X}'.format(hex) for hex in value))
        elif type(value) is int:
            strVal.append('{:02X} '.format(value))
    return (strKey, strVal)

始终可以检查变量类型:

def get_hex_representation(struct):
    str = None
    if type(struct) is list:
        str = ''.join('{:02X}'.format(hex) for hex in hexlist)
    elif type(struct) is dict:
        str = '{hex:x}, {hexlist:x}'.format(**dict)
    return str

此外,如果您的结构既不是list也不是dict,则可以抛出异常而不是返回None。你知道吗

相关问题 更多 >