这样的通用方法可能会有很多陷阱,但是如果您的词典主要是原始的,而且不庞大,则可以执行以下 *** 作:
假设您的数据如下所示:
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的注释更改了定义。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)