我有两个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)