python – 将defaultdict键值与另一个defaultdict进行比较

我有两个defaultdict:

defaultdict(<type 'list'>, {'a': ['OS', 'sys', 'procs'], 'b': ['OS', 'sys']})

defaultdict(<type 'list'>, {'a': ['OS', 'sys'], 'b': ['OS']})

如何比较这两个以获取每个值缺失的值.
例如,我应该从键’a’的第二个defaultdict中缺少两个值,从’b’中丢失一个值.

最佳答案 如果您只想要第二个默认字典中缺少的总数,您可以遍历第一个字典并查看设置差异,以确定A中相对于B的事物数量.

如果您定义这样的dicts:

a = defaultdict(list, {'a': ['OS', 'sys', 'procs'], 'b': ['OS', 'sys']})
b = defaultdict(list, {'a': ['OS', 'sys'], 'b': ['OS']})

这将告诉你dict B中缺少了多少:

total_missing_inB = 0
for i in a:
    diff = set(a[i]) - set(b[i])
    total_missing_inB += len(diff)

这将告诉你有多少人从字典A中丢失了

total_missing_inA = 0
for i in b:
    diff = set(b[i]) - set(a[i])
    total_missing_inA += len(diff)
点赞