我想实现一个特殊的字典,当我向字典中插入一个新的key-value对时,字典内部自动帮我生成一个反向的key-value对,比如我写入'一': 1 , 那么字典里同时也存在1: '一', 因为这种映射关系也是成立的,但我不想写入两次。
下面是我的实现
class DoubleDict(dict):
def __delitem__(self, key): # 删除一个key, 也必须删除value
value = super().pop(key)
super().pop(value, None)
def __setitem__(self, key, value): # 先设置key-value, 再设置value-key
super().__setitem__(key, value)
super().__setitem__(value, key)
def update(self, another):
for key, value in another.items():
self.__setitem__(key, value)
def __repr__(self):
return f"{type(self).__name__}({super().__repr__()})"
dic = DoubleDict()
print(dic)
dic['一'] = 1
dic['二'] = 2
print(dic['一'])
print(dic[2])
dic.update({'三': 3})
print(dic[3])
设计一个类,继承dict, 然后重载__delitem__ , __setitem__, update,__repr__方法
QQ交流群: 211426309