reverse dict lookup & Relation class

MRAB google at mrabarnett.plus.com
Wed Jan 14 20:54:49 EST 2009


Aaron Brady wrote:
> Hi, this is a continuation of something that comes up now and again 
> about reverse lookups on dictionaries, as well as a follow-up to my 
> pursuit of a Relation class from earlier.
> 
> For a reverse lookup, you just need two lookups.
> name= {}
> phone= {}
> name[ '555-963' ]= 'Joan'
> phone[ 'Joan' ]= '555-963'
> 
> Though maybe the keys in 'name' should be names, instead of the
> values in it.  The variable name doesn't clarify that.  (What is more
> natural to you in reading code?  Is one obviously wrong?)
> 
> phone[ '555-963' ]= 'Joan'
> name[ 'Joan' ]= '555-963'
> 
Consider "str(x)". It isn't saying "x is a string", it's saying "x as a
string". Similarly, "ord(x)" says "the ordinal value of x". So,
"phone[x]" means "the phone number of x".

[snip]
> What's the best way to construct this class?  Or, do you have an 
> argument that it could not be simpler than using a relational db? 
> Brainstorming, not flamestorming.
> 
You could imagine an object where you provide a field name and a value
and it returns all those entries where that field contains that value.
That, basically, is a database.



More information about the Python-list mailing list