将整数列表的字典打印为十六进制

问题描述 投票:0回答:2

我需要在python 2.7中将具有多个整数列表的字典格式化为十六进制。

我已经找到了一种将字典中的整数格式化为十六进制的方法。在此示例中,十六进制将起作用,而十六进制列表将不起作用。

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

但是我不知道如何将两者结合在一起...

python string dictionary format hex
2个回答
1
投票

您始终可以检查变量类型:

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

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


0
投票

我现在已经解决了这个问题。检查类型的想法是关键。此函数吐出一个包含键和值列表的元组,我可以进一步处理这些键和值。可能不是最优雅的解决方案,但目前可以使用。

© www.soinside.com 2019 - 2024. All rights reserved.