I need a proper solution to search for a key in a nested data structures in Python. Lets assume that I have variable with value 'check' and dict like this:
SERVICES = {
'domain': ['check','whois','register'],
'user': ['create','show','delete'],
'invoice': ['toPdf','print']
}
What is the best way to check in which array-key is the 'check' value and return 'domain'?
Standard approach:
for k, v in SERVICES.items(): # or iteritems in Python 2
if 'check' in v:
print(k) # 'domain'
break
If you expect to have multiple keys matching the condition, just remove break
.
Functional approach:
>>> next(filter(lambda x: 'check' in SERVICES[x], SERVICES))
'domain'
Simply iterate over the dictionary keys and check if check
is one of the values of the value corresponding to the key. If you find it then give it to the next
call.
print next(key for key in SERVICES if 'check' in SERVICES[key])
# domain
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With