如何使用十六进制值正确定义字典?

How to define correctly dictionary with hexadecimal values?

我有一个 if-elif 语句来为变量 BinValues 分配十六进制值,如下所示:

if a == "v1":
    BinValues = b'\xF2'
elif a == "v2":
    BinValues = b'\xD3'
elif a == "v3":
    BinValues = b'\x71\xC2'

由于十六进制值可能大于 3,为了不使用多个 if 语句,我想使用字典来完成此任务。

我试过如下但出现错误。

BinValues  = { "v1": b'\xF2', "v2": b'\xD3', "v3": b'\x71\xC2' }    

但是当我打印字典BinValues的内容时,当我输入的值是b'\x71\xC2'

时,键“v3”的值已经变成了b'q\xc2'
>>> BinValues
{'v1': b'\xf2', 'v2': b'\xd3', 'v3': b'q\xc2'}

这是怎么回事?谢谢

我想应该是一样的。 Python 只是显示为 ascii 字符。我对十六进制值了解不多,但是给你。 https://www.cisco.com/c/en/us/td/docs/ios/12_4/cfg_fund/command/reference/cfnapph.html

我也尝试写入文件并得到相同的结果,除了一个奇怪的问号字符。这是相同的,因为 q 的十六进制值为 71

b'\x71\xc2' == b'q\xc2'

因为

b'\x71' == b'q'

检查ASCII table,可以看到“hex 71”对应于“q”。