递归测试dict是否包含在dict中

皮埃尔·L

我需要知道在Python 3中是否递归地将dict包含在另一个dict中:

first  = {"one":"un", "two":"deux", "three":"trois" , "sub": { "s1": "sone" }}
second = {"one":"un", "two":"deux", "three":"trois", "foo":"bar", "sub": { "s1": "sone", "s2": "stwo"}}

Test中所描述的那样,使用字典视图描述dict是否包含在dict中是一种非常不错的方法,但是不能处理递归情况。

我想出了这个功能:

def isIn(inside, outside):
    for k, v in inside.items():
        try:
            if isinstance(v,dict):
                if not isIn(v, outside[k]):
                    return False
            else:
                if v != outside[k]:
                    return False
        except KeyError:
            return False

    return True

哪些工作:

>>> first.items() <= second.items()
False
>>> isIn(first, second)
True

有更好的(更Pythonic的)方法吗?

沉默的

这是一个较短的版本,它不需要try/except并处理参数为不同类型的情况:

def isIn(inside, outside):
    if isinstance(inside, dict) and isinstance(outside, dict):
        return all(isIn(v, outside.get(k, object())) for k, v in inside.items())
    return inside == outside

print(isIn(first, second)) # True
print(isIn(second, first)) # False
print(isIn({}, 9999)) # False

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

XSLT:测试字符串是否包含在序列中

来自分类Dev

递归dict

来自分类Dev

测试python Counter是否包含在另一个Counter中

来自分类Dev

使用mocha测试对象是否部分包含在数组中

来自分类Dev

测试向量是否包含在另一个向量中,包括重复

来自分类Dev

测试一个列表是否包含在另一个列表中

来自分类Dev

检测文件是否包含在Jekyll中

来自分类Dev

Scapy是否包含在Anaconda中?

来自分类Dev

识别字符串1是否包含在字符串2中的递归函数?(Python 3.4)

来自分类Dev

检查dict键是否在dict的列表(元组)中

来自分类Dev

是否有内置的dict.get()的递归版本?

来自分类Dev

是否保持递归dict函数的嵌套键级别?

来自分类Dev

具有 3 个参数(int、bool、dict)的函数并测试以查看 int 是否在字典中

来自分类Dev

测试一个数组的元素是否包含在另一个数组中

来自分类Dev

Bootstrap 3 js是否包含在Rails 4中?

来自分类Dev

确定裁剪矩形是否完全包含在旋转的UIView中

来自分类Dev

检查变量是否包含在SCSS的单词列表中

来自分类Dev

如何检查value属性是否包含在数组中?

来自分类Dev

Python:当前目录是否自动包含在路径中?

来自分类Dev

如何检查指定的日期是否包含在记录中

来自分类Dev

Android SDK:Drawable的图片是否包含在内存中?

来自分类Dev

检查ID是否包含在txt文件中

来自分类Dev

验证是否包含在Rails中而不采取措施

来自分类Dev

如何检查value属性是否包含在数组中?

来自分类Dev

检查变量是否包含在SCSS的单词列表中

来自分类Dev

检查数字是否包含在字典数组 C# 中

来自分类Dev

是否可以将文档书“文章”包含在“书”中?

来自分类Dev

If 语句检查表是否包含在 Iframe 中

来自分类Dev

是否可以在视频中包含在线图像?

Related 相关文章

  1. 1

    XSLT:测试字符串是否包含在序列中

  2. 2

    递归dict

  3. 3

    测试python Counter是否包含在另一个Counter中

  4. 4

    使用mocha测试对象是否部分包含在数组中

  5. 5

    测试向量是否包含在另一个向量中,包括重复

  6. 6

    测试一个列表是否包含在另一个列表中

  7. 7

    检测文件是否包含在Jekyll中

  8. 8

    Scapy是否包含在Anaconda中?

  9. 9

    识别字符串1是否包含在字符串2中的递归函数?(Python 3.4)

  10. 10

    检查dict键是否在dict的列表(元组)中

  11. 11

    是否有内置的dict.get()的递归版本?

  12. 12

    是否保持递归dict函数的嵌套键级别?

  13. 13

    具有 3 个参数(int、bool、dict)的函数并测试以查看 int 是否在字典中

  14. 14

    测试一个数组的元素是否包含在另一个数组中

  15. 15

    Bootstrap 3 js是否包含在Rails 4中?

  16. 16

    确定裁剪矩形是否完全包含在旋转的UIView中

  17. 17

    检查变量是否包含在SCSS的单词列表中

  18. 18

    如何检查value属性是否包含在数组中?

  19. 19

    Python:当前目录是否自动包含在路径中?

  20. 20

    如何检查指定的日期是否包含在记录中

  21. 21

    Android SDK:Drawable的图片是否包含在内存中?

  22. 22

    检查ID是否包含在txt文件中

  23. 23

    验证是否包含在Rails中而不采取措施

  24. 24

    如何检查value属性是否包含在数组中?

  25. 25

    检查变量是否包含在SCSS的单词列表中

  26. 26

    检查数字是否包含在字典数组 C# 中

  27. 27

    是否可以将文档书“文章”包含在“书”中?

  28. 28

    If 语句检查表是否包含在 Iframe 中

  29. 29

    是否可以在视频中包含在线图像?

热门标签

归档