您可以通过子类化
dict并添加所需的逻辑来创建自己的字典类型。这是一个基本示例:
class TwoWayDict(dict): def __setitem__(self, key, value): # Remove any previous connections with these values if key in self: del self[key] if value in self: del self[value] dict.__setitem__(self, key, value) dict.__setitem__(self, value, key) def __delitem__(self, key): dict.__delitem__(self, self[key]) dict.__delitem__(self, key) def __len__(self): """Returns the number of connections""" return dict.__len__(self) // 2
它的工作原理如下:
>>> d = TwoWayDict()>>> d['foo'] = 'bar'>>> d['foo']'bar'>>> d['bar']'foo'>>> len(d)1>>> del d['foo']>>> d['bar']Traceback (most recent call last): File "<stdin>", line 7, in <module>KeyError: 'bar'
我确定我没有涵盖所有情况,但这应该可以帮助您入门。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)