libb.bidict
- class bidict(*args, **kwargs)[source]
Bases:
dictBidirectional dictionary that allows multiple keys with the same value.
Maintains an inverse mapping from values to lists of keys that enables bidirectional lookup.
Basic Usage:
>>> bd = bidict({'a': 1, 'b': 2}) >>> bd {'a': 1, 'b': 2} >>> bd.inverse {1: ['a'], 2: ['b']}
Multiple Keys with Same Value:
>>> bd['c'] = 1 >>> bd {'a': 1, 'b': 2, 'c': 1} >>> bd.inverse {1: ['a', 'c'], 2: ['b']}
Removing Keys Updates Inverse:
>>> del bd['c'] >>> bd {'a': 1, 'b': 2} >>> bd.inverse {1: ['a'], 2: ['b']} >>> del bd['a'] >>> bd {'b': 2} >>> bd.inverse {2: ['b']}
Changing Values Updates Inverse:
>>> bd['b'] = 3 >>> bd {'b': 3} >>> bd.inverse {2: [], 3: ['b']}
- inverse