On Fri, 22 Jul 2005 12:42:04 +0000, Odd-R. wrote: > On 2005-07-22, John Machin <[EMAIL PROTECTED]> wrote: >> Odd-R. wrote: >>> I have this list: >>> >>> [{'i': 'milk', 'oid': 1}, {'i': 'butter', 'oid': 2},{'i':'cake','oid':3}] >>> >>> All the dictionaries of this list are of the same form, and all the oids >>> are distinct. If I have an oid and the list, how is the simplest way of >>> getting the dictionary that holds this oid?
Instead of keeping a list of dictionaries, keep a dict of dicts, indexed by the oid: D = {1: {'i': 'milk'}, 2: {'i': 'butter'}, 3: {'i': 'cake'}} Then you can extract a dictionary with a single call: thedict = D[oid] or just grab the item you want directly: food = D[oid]['i'] No mess, no fuss. Ninety percent of the work is choosing your data structures correctly. >> Something like this: >> >> def oidfinder(an_oid, the_list): >> for d in the_list: >> if d['oid'] == an_oid: >> return d >> return None >> # These are not the oids you are looking for. > > Thank you for your help, but I was hoping for an even simpler > solution, as I am suppose to use it in a > <tal:block tal:define="p python: sentence. I don't understand what that means. Can you explain please? -- Steven. -- http://mail.python.org/mailman/listinfo/python-list