Hi All-- Terry Hancock wrote: > > On Thursday 23 June 2005 02:40 pm, Florian Lindner wrote: > > is there in python a kind of dictionary that supports key - key pairs? > > I need a dictionary in which I can access a certain element using two > > different keys, both unique. > > > > For example: > > > > I've a dictionary with strings and times. Sometimes I have the string and I > > want to have the time, other time I've the time and I want the string. It > > is important that one of the keys supports the min/max builtin function. > > Well, really, you're always using one or the other as the "key" and the other > as the "value". Furthermore, it is not in the general case assured that you > can do this --- the keys may not really be 1:1. > > If you are content to restrict yourself to the 1:1 case, you can construct > an inverse dictionary from the first dictionary like this: > > time2string = dict([ (b,a) for a,b in string2time.items() ]) > > Note that if string2time has duplicate values, this will arbitrarily pick > one (in a consistent, but implementation dependent way) to use as > the key in the inverse mapping. >
Well, Florian said, "using two different keys, both unique"; if that is true, then a single key maps to a single value & vice versa. Easiest way, it seems to me, would be to subclass dict and provide get/set that always insert the value as a key. So that dict["string"]=time also means dict[time]="string". Only one dict required then. Or am I missing something? Metta, Ivan ---------------------------------------------- Ivan Van Laningham God N Locomotive Works http://www.andi-holmes.com/ http://www.foretec.com/python/workshops/1998-11/proceedings.html Army Signal Corps: Cu Chi, Class of '70 Author: Teach Yourself Python in 24 Hours -- http://mail.python.org/mailman/listinfo/python-list