两路反向映射

两路反向映射,第1张

两路/反向映射

您可以通过子类

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'

我确定我没有涵盖所有情况,但这应该可以帮助您入门。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5646346.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存