Python 当按键为位掩码时,如何反转dict?
如何在编译期间将标记_反转为_标记:Python 当按键为位掩码时,如何反转dict?,python,python-3.x,Python,Python 3.x,如何在编译期间将标记_反转为_标记: class FLAG(IntEnum): DEFAULT_ZERO = 0b0 L1 = 0b01 L2 = 0b10 RSU = 0b100 ESCALATED_COMMENTS = 0b1000 Flag_to_Marker = {L1: 'is_l1', L2: 'is_l2', RSU: 'is_rsu'} Marker_to_Flag = {v: k for k, v in Flag_to_
class FLAG(IntEnum):
DEFAULT_ZERO = 0b0
L1 = 0b01
L2 = 0b10
RSU = 0b100
ESCALATED_COMMENTS = 0b1000
Flag_to_Marker = {L1: 'is_l1', L2: 'is_l2', RSU: 'is_rsu'}
Marker_to_Flag = {v: k for k, v in Flag_to_Marker.items()}
def marker(self, flag):
return self.Flag_to_Marker[flag]
def flag(self, marker):
return self.Marker_to_Flag[marker]
但是,当我试图构造Marker_to_标志时,有以下例外:int参数必须是字符串、类似字节的对象或数字,而不是“dict”。如何解决这个问题
我想让标记_to_Flag={'is_l1':l1',is_l2':l2',is_rsu':rsu}
您的值必须是唯一的。
反转的_dict={y:x代表x,y在标志_到_Marker.items}
你想让Marker_to_Flag={v:k代表k,Flag_to_Marker.items}中的v代替吗?我试过了,但我得到的int参数必须是字符串、类似对象的字节或数字,而不是“dict”,可能的问题是在某个地方我们看不到你不能在IntEnum中定义任意数据。在类外定义词典。否则python会尝试将它们转换为整数。看一下文档-还有一些关于使用枚举作为标志的信息。我尝试过,但我得到int参数必须是字符串、类似字节的对象或数字,而不是“dict”。我认为错误是在其他地方生成的。我通过解释器运行了代码,字典颠倒了
Marker_to_Flag = {v: k for k, v in Flag_to_Marker.items()}