Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #15602
| From | Gelonida N <gelonida@gmail.com> |
|---|---|
| Subject | Re: Get keys from a dicionary |
| Date | 2011-11-11 18:45 +0100 |
| References | <8f5215a8-d08f-4355-a5a2-77fcaa32c92d@j10g2000vbe.googlegroups.com> <j9jm2n$gik$1@dough.gmane.org> |
| Newsgroups | comp.lang.python |
| Message-ID | <mailman.2653.1321033516.27778.python-list@python.org> (permalink) |
On 11/11/2011 02:31 PM, macm wrote:
> > Hi Folks
> >
> > I pass a nested dictionary to a function.
> >
> > def Dicty( dict[k1][k2] ):
> > print k1
> > print k2
> >
> > There is a fast way (trick) to get k1 and k2 as string.
> >
> > Whithout loop all dict. Just it!
> >
> > Regards
> >
> > macm
If my guessing was correct is this what you are looking for?
nesteddict = { 'a': { 'A' : 'value1 a_A' , 'B' : 'value2 a_B' },
'b': { 'A' : 'value3 b_A' , 'B' : 'value4 b_B' },
'c': { 'A' : 'value3 b_A' , 'B' : 'value4 b_B' },
}
def find_in_nested_dict(adict, avalue):
results = []
for key1, sub_dict in adict.items():
for key2, value in sub_dict.items():
if avalue == value:
results.append( (key1, key2) )
return results
def mk_lookup(adict):
lookup = {}
for key1, sub_dict in adict.items():
for key2, value in sub_dict.items():
entry = lookup.get(value, [])
entry.append( (key1, key2) )
lookup[value] = entry
return lookup
# good if you just want so search one value
value = nesteddict['c']['B']
keys = find_in_nested_dict(nesteddict, value)
print "found %r in %r" % (value, keys)
# if you need many lookups perhaps better to 'precalculate a
# 'reversed' dict
lookup = mk_lookup(nesteddict)
keys = lookup[value]
print "found %r in %r" % (value, keys)
Back to comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Get keys from a dicionary macm <moura.mario@gmail.com> - 2011-11-11 05:31 -0800
Re: Get keys from a dicionary Jon Clements <joncle@googlemail.com> - 2011-11-11 08:09 -0800
Re: Get keys from a dicionary macm <moura.mario@gmail.com> - 2011-11-11 08:33 -0800
Re: Get keys from a dicionary macm <moura.mario@gmail.com> - 2011-11-11 08:38 -0800
Re: Get keys from a dicionary Dave Angel <d@davea.name> - 2011-11-11 11:47 -0500
Re: Get keys from a dicionary John Gordon <gordon@panix.com> - 2011-11-11 17:28 +0000
Re: Get keys from a dicionary John Gordon <gordon@panix.com> - 2011-11-11 16:25 +0000
Re: Get keys from a dicionary macm <moura.mario@gmail.com> - 2011-11-11 08:36 -0800
Re: Get keys from a dicionary Gelonida N <gelonida@gmail.com> - 2011-11-11 18:29 +0100
Re: Get keys from a dicionary Gelonida N <gelonida@gmail.com> - 2011-11-11 18:45 +0100
Re: Get keys from a dicionary John Gordon <gordon@panix.com> - 2011-11-11 17:51 +0000
Re: Get keys from a dicionary alex23 <wuwei23@gmail.com> - 2011-11-13 21:42 -0800
Re: Get keys from a dicionary alex23 <wuwei23@gmail.com> - 2011-11-13 21:44 -0800
Multilevel dicts/arrays v. tuples as keys? [Was: Re: Get keys from a dicionary] Matej Cepl <mcepl@redhat.com> - 2011-11-14 11:05 +0100
Re: Multilevel dicts/arrays v. tuples as keys? [Was: Re: Get keys from a dicionary] Tim Golden <mail@timgolden.me.uk> - 2011-11-14 10:42 +0000
Re: Multilevel dicts/arrays v. tuples as keys? Peter Otten <__peter__@web.de> - 2011-11-14 11:47 +0100
Re: Multilevel dicts/arrays v. tuples as keys? alex23 <wuwei23@gmail.com> - 2011-11-14 19:07 -0800
csiph-web