我需要在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)
但是我不知道如何将两者结合在一起...
您始终可以检查变量类型:
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
。>
我现在已经解决了这个问题。检查类型的想法是关键。此函数吐出一个包含键和值列表的元组,我可以进一步处理这些键和值。可能不是最优雅的解决方案,但目前可以使用。