This is a better version of the class that I sen't you, now it raises a KeyError when you try to insert a value that is already in
############################ class MyCoolDictionary(dict): def __init__(self, *args, **kargs): dict.__init__(self, *args, **kargs) def __setitem__(self, *args, **kargs): for i in dictio.values(): if args[0]==i or args[1]==i: raise KeyError, 'Value already exists' dict.__setitem__(self, *args, **kargs) def __getitem__(self, item): try: return dict.__getitem__(self, item) except KeyError: keys=[] for i in dictio.keys(): if dictio[i]==item: keys.append(i) if not keys: raise KeyError, 'Can\'t found key or value "' + str(item) + '"' return keys ############################ Feel free to change anything you want or need Regards, Akathorn Greyhat 2008/7/14 Kless <[EMAIL PROTECTED]>: > I need a dictionary where get the result from a 'key' (on left), but > also from a 'value' (on right), how to get it? > > I know that dictionaries aren't bidirectional, but is there any way > without use two dictionaries? > > > Thanks in advance! > -- > http://mail.python.org/mailman/listinfo/python-list >
-- http://mail.python.org/mailman/listinfo/python-list