Jak*_*ake 2 python collections dictionary list
我想测试一个字符串是否存在于defaultdict的任何列表值中.
例如:
from collections import defaultdict
animals = defaultdict(list)
animals['farm']=['cow', 'pig', 'chicken']
animals['house']=['cat', 'rat']
Run Code Online (Sandbox Code Playgroud)
我想知道"牛"是否出现在动物的任何一个清单中.
'cow' in animals.values() #returns False
Run Code Online (Sandbox Code Playgroud)
对于像这样的情况,我想要一些会返回"True"的东西.有相当于:
'cow' in animals.values()
Run Code Online (Sandbox Code Playgroud)
对于defaultdict?
谢谢!
Ned*_*der 12
defaultdict与本例中的常规字典没有什么不同.您需要迭代字典中的值:
any('cow' in v for v in animals.values())
Run Code Online (Sandbox Code Playgroud)
或更多程序性地:
def in_values(s, d):
"""Does `s` appear in any of the values in `d`?"""
for v in d.values():
if s in v:
return True
return False
in_values('cow', animals)
Run Code Online (Sandbox Code Playgroud)