我需要一個適當的解決方案來搜索Python中嵌套數據結構中的鍵。 讓我們假設我有值「檢查」變量和字典是這樣的:Python按值搜索
SERVICES = {
'domain': ['check','whois','register'],
'user': ['create','show','delete'],
'invoice': ['toPdf','print']
}
什麼是檢查在陣列關鍵是「檢查」的價值和回報「域」的最佳方式?
我需要一個適當的解決方案來搜索Python中嵌套數據結構中的鍵。 讓我們假設我有值「檢查」變量和字典是這樣的:Python按值搜索
SERVICES = {
'domain': ['check','whois','register'],
'user': ['create','show','delete'],
'invoice': ['toPdf','print']
}
什麼是檢查在陣列關鍵是「檢查」的價值和回報「域」的最佳方式?
標準的做法:
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'
在字典鍵只需迭代,並檢查是否是check
對應於密鑰的值的值中的一個。如果你發現它,然後給它撥打next
電話。
print next(key for key in SERVICES if 'check' in SERVICES[key])
# domain
SERVICES = {
'domain': ['check','whois','register'],
'user': ['create','show','delete'],
'invoice': ['toPdf','print']
}
print [k for k in SERVICES if 'check' in SERVICES[k]]