Livin wrote:

> I'm a noobie so please be easy on me. I have searched a ton and did not find
> anything I could understand.
>
> I'm using py2.3
>
> I've been using Try/Except but this gets long with multiple dictionaries.
>
> I found some code on web pages and such but cannot get them to work. Any
> help is appreciated as I need to search multiple dictionaries for keys.
>
>
>
> here's the code I found but cannot get to work...
>
> dict_set = (self.dictHSdevices, self.dictHSevents, self.dictHSbtnDevices)
> <-- /creates set of dictionaries/
>
> /code to search the set/-->
>
>        val = [ d for d in dict_set if d[value] in dict_set ]
> OR
>        for key, value in dict.iteritems(): pass


If I understood correctly what you want to do, here's a one-liner that
does it:

def lookup(value, *dicts):
    return [d.get(value) for d in dicts if value in d]

>>> a = {'x':1, 'y':2}
>>> b = {'y':4, 'z':7}
>>> lookup('y', a, b)
[2, 4]

It's not the *most* efficient way because value is looked up twice if
it is contained in the dictionary; if you absolutely need it to be as
efficient as possible and can't figure it out on your own, ask again
and someone will help you out.

George

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to