您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python-从另一个字典中减去字典

Python-从另一个字典中减去字典

这样的通用方法可能会有很多陷阱,但是如果您的词典主要是原始的,而且不庞大,则可以执行以下操作:

假设您的数据如下所示:

networks = [
        {'address': '192.168.1.1'},
        {'address': '127.0.0.1'},
    ]

missing = [
        {'address': '127.0.0.1'}
    ]

您可以将字典列表转换为列表元组(可散列)

def make_hashable(d):
    return (frozenset(x.iteritems()) for x in d)

networks_hashable = make_hashable(networks)
missing_hashable = make_hashable(missing)

然后减去

diff = set(networks_hashable).difference(missing_hashable)

现在您有了一个元组列表

print list(diff)

或者,转换回字典

print [dict(x) for x in diff]

我已经make_hashable基于@gnibbler的注释更改了定义。

python 2022/1/1 18:35:08 有231人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶