[Python-ideas] Dict with inverse form
Chris Angelico
rosuav at gmail.com
Thu Feb 11 21:18:42 EST 2016
On Fri, Feb 12, 2016 at 1:14 PM, João Bernardo <jbvsmo at gmail.com> wrote:
> Many times I have the need for a dictionary and its inverse form (keys and
> values swapped). ... The important part would be to remove keys from the
> inverse dict when the value is changed in the direct one:
>
> d['foo'] == 10
> d.inv[10] == 'foo'
> d['foo'] = 1
> d.inv[1] == 'foo'
> d.inv[10] -> will raise KeyError instead of returning 'foo'
Sounds like what you're looking for is a view, rather than an
additional concrete dictionary. In other words, it's a (presumably
more efficient) way of doing this:
def d.inv[x]:
for key in d:
if d[key] == x: return key
raise KeyError
Does that sound right?
ChrisA
More information about the Python-ideas
mailing list