[Tutor] Finding the key for a value in a dictionary.

Kent Johnson kent37 at tds.net
Thu Jan 11 11:58:13 CET 2007


Wesley Brooks wrote:
> Dear Users,
> 
> I'm trying to find the key of a unique value within a dictionary. Is
> the code bellow a safe way of doing so, or is there a better way of
> doing it?
> 
> a = {'de':'df', 'gf':'hg'}
> key = a.keys()[a.values().index('hg')]

This is safe, as long as the dict is not being modified (by another 
thread, presumably) while this is going on - the docs for dict 
explicitly guarantee that the order of items in a.keys() and a.values() 
will correspond as long as a doesn't change.

Whether it is a good solution or not, I don't know. It sounds like your 
dictionary is backwards, maybe, if you are looking up by value.

Kent



More information about the Tutor mailing list