Dennis Lee Bieber wrote:
On Sun, 13 Jul 2008 16:21:11 -0700 (PDT), Kless
<[EMAIL PROTECTED]> declaimed the following in comp.lang.python:
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?
Just out of curiosity... What do you expect to have returned from...
aDict = { "one" : "two",
"three" : "four",
"What?" : "two" }
when looking for the value "two"?
In a dictionary, the /keys/ are unique... but the /values/ can be
duplicates.
I wonder if anyone has implemented an 'equivalence class' class (for
finite sets) based on this.
Obviously the relation defined by
k1~k2 iff D[k1] == D[k2]
does partition the set of all keys as an equivalence class.
So ... as a kind of inverse you could return a set, a subset of the
keys. How you would get a canonical representative of that set is
a different matter, of course. Unless, as in the OP's case, it is
a singleton set.
It would seem more efficient to do this when a key-value pair is
added or removed from the original dictionary rather than iterating
over all the keys each time you used it.
--
http://mail.python.org/mailman/listinfo/python-list