Multikey Dict?

David Rasmussen david.rasmussen at gmx.net
Sat Nov 12 19:03:05 EST 2005


If I have a collection of dicts like:

john = {'id': 1, 'name': "John Cleese", 'year': 1939}
graham = {'id': 2, 'name': "Graham Chapman", 'year': 1941}

I could store all of them in a list. But for easy lookup, I might store 
all these in a dict instead, like

people = {'1': john, '2': graham}

or maybe

people = {'John Cleese': john, 'Graham Chapman': graham}

or whatever key I might choose. Now, first of all, it seems a bit 
annoying that I have to keep that redundant data in the second dict that 
is already in the individual dicts within people. Secondly (and this is 
my question), it is annoying that I have to choose one of several 
unambiguous keys as a key.

I would like to be able to say:

people['1'].year

in some case and in other cases I want to say

people['John Cleese'].year

That is, sometimes I have the name at hand and would like to look up 
data based on that. Other times, I have the ID at hand and would like to 
look up data based on that instead.

Also, I would like if I didn't have to keep the key data both in the 
dict of dicts and in the dicts :)

If I could just say to Python: john and graham (and ...) are all a part 
of a "superdict" and either their id or their name can be used as keys.

Can I do that somehow?

/David



More information about the Python-list mailing list