gpt4 book ai didi

python - 如何检查一个字典是否是另一个更大字典的子集?

转载 作者:IT老高 更新时间:2023-10-28 21:12:16 25 4
gpt4 key购买 nike

我正在尝试编写一个自定义过滤器方法,该方法采用任意数量的 kwargs 并返回一个列表,其中包含包含这些 kwargs 的类似数据库的列表的元素>.

例如,假设 d1 = {'a':'2', 'b':'3'}d2 = 相同的东西。 d1 == d2 结果为真。但是假设 d2 = 相同的东西加上一堆其他的东西。我的方法需要能够判断 d1 in d2,但 Python 不能用字典做到这一点。

上下文:

我有一个 Word 类,每个对象都有 worddefinitionpart_of_speech 等属性。我希望能够在这些单词的主列表上调用过滤器方法,例如 Word.objects.filter(word='jump', part_of_speech='verb-intransitive')。我不知道如何同时管理这些键和值。但这对于其他人来说可能在此上下文之外具有更大的功能。

最佳答案

在 Python 3 中,您可以使用 dict.items()获得字典项目的类似集合的 View 。然后您可以使用 <=运算符来测试一个 View 是否是另一个 View 的“子集”:

d1.items() <= d2.items()

在 Python 2.7 中,使用 dict.viewitems()做同样的事情:

d1.viewitems() <= d2.viewitems()

在 Python 2.6 及以下版本中,您将需要不同的解决方案,例如使用 all() :

all(key in d2 and d2[key] == d1[key] for key in d1)

关于python - 如何检查一个字典是否是另一个更大字典的子集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9323749/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com