Python search by value

前端 未结 3 515
一个人的身影
一个人的身影 2021-01-06 05:44

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:



        
相关标签:
3条回答
  • 2021-01-06 06:03

    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'
    
    0 讨论(0)
  • 2021-01-06 06:04
    SERVICES = {
        'domain': ['check','whois','register'],
        'user': ['create','show','delete'],
        'invoice': ['toPdf','print']
    }
    
    print [k for k in SERVICES if 'check' in SERVICES[k]]
    
    0 讨论(0)
  • 2021-01-06 06:18

    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
    
    0 讨论(0)
提交回复
热议问题