Python:测试一个值是否存在于 defaultdict 列表中

标签 python list collections dictionary

我想测试一个字符串是否存在于 defaultdict 的任何列表值中。

例如:

from collections import defaultdict  
animals = defaultdict(list)  
animals['farm']=['cow', 'pig', 'chicken']  
animals['house']=['cat', 'rat']

我想知道“牛”是否出现在动物体内的任何列表中。

'cow' in animals.values()  #returns False

对于这样的情况,我想要一些会返回“True”的东西。是否有等同于:

'cow' in animals.values()  

对于默认字典?

谢谢!

最佳答案

在这种情况下,defaultdict 与常规字典没有什么不同。您需要遍历字典中的值:

any('cow' in v for v in animals.values())

或更程序化:

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)

关于Python:测试一个值是否存在于 defaultdict 列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3667411/

相关文章:

java - 绑定(bind)动态列表时的奇怪问题

java - 具有良好(插入,迭代)性能特征的Java中的原始多图

python - Python如何传递多重继承的__init__参数

python - 如何根据传递给 open() 的参数以不同方式模拟打开

list - 如何使用Java使用youtube API v3获取视频的URL

java - 将包含数据的数组传递给 List 的 toArray 方法

python - Django 和 urls.py : How do I HttpResponseRedirect via a named url?

python - 在 Redhat 6.8 上将 glibc 2.12 升级到 2.14 以使用 Tensorflow 和 Python

python - 如何理解Python中list结构的内存?

java - 赋予 ListChangeListener 初始状态