diff options
| author | Scott Gasch <[email protected]> | 2021-10-02 09:03:31 -0700 |
|---|---|---|
| committer | Scott Gasch <[email protected]> | 2021-10-02 09:03:31 -0700 |
| commit | fa4298fa508e00759565c246aef423ba28fedf31 (patch) | |
| tree | 7afd570b762035564a6d45c1fcf03697e6ee9f79 /collect/bidict.py | |
| parent | b0bde5bef4a19382136112196b238088641738d5 (diff) | |
changes
Diffstat (limited to 'collect/bidict.py')
| -rw-r--r-- | collect/bidict.py | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/collect/bidict.py b/collect/bidict.py index e162179..1fa66dc 100644 --- a/collect/bidict.py +++ b/collect/bidict.py @@ -35,14 +35,16 @@ class bidict(dict): def __setitem__(self, key, value): if key in self: - self.inverse[self[key]].remove(key) + old_value = self[key] + self.inverse[old_value].remove(key) super().__setitem__(key, value) self.inverse.setdefault(value, []).append(key) def __delitem__(self, key): - self.inverse.setdefault(self[key], []).remove(key) - if self[key] in self.inverse and not self.inverse[self[key]]: - del self.inverse[self[key]] + value = self[key] + self.inverse.setdefault(value, []).remove(key) + if value in self.inverse and not self.inverse[value]: + del self.inverse[value] super().__delitem__(key) |
