Python按值搜索


问题内容

我需要一个适当的解决方案来在Python的嵌套数据结构中搜索键。让我们假设我的变量值为’check’和dict,如下所示:

SERVICES = {
    'domain': ['check','whois','register'],
    'user': ['create','show','delete'],
    'invoice': ['toPdf','print']
}

检查“ array”键是“ check”值并返回“ domain”的最佳方法是什么?


问题答案:

标准方法:

for k, v in SERVICES.items(): # or iteritems in Python 2
    if 'check' in v:
        print(k) # 'domain'
        break

如果您希望有多个匹配条件的键,只需删除即可break

功能方法:

>>> next(filter(lambda x: 'check' in SERVICES[x], SERVICES))
'domain'