我正在寻找一种方法来确定以下场景中n个字典的差异:
有n
本词典。他们的一些钥匙匹配,但不是全部。像这样:
dict_a = {
'keyA': 'valueA',
'keyB': 'valueB',
'keyC': 'valueC',
'keyD': 'valueD',
'keyE': 'valueE',
'keyF': 'valueF',
'keyG': 'valueG'
}
dict_b = {
'keyA': 'valueA',
'keyB': 'valueB',
'keyX': 'valueX',
'keyD': 'valueH',
'keyE': 'valueE',
'keyF': 'valueF',
'keyG': 'valueG'
}
我想知道,一个键的值是否与另一个字典中同一个键的值不同。在上面的示例中,应返回keyD
,因为它的值在dict_a
和dict_b
中不同keyX
不应返回,因为它只出现在dict_b
中。仅使用两个词典相对容易,但是使用n
词典实现这一点的最佳实践是什么
迭代字典列表以进行比较,并跟踪以前看到的所有键及其值(通过
orig.update()
调用完成)。。输出
['keyD', 'keyG']
,这是三个dict值不同的两个键。如果您不希望键显示多次(即,如果您只需要知道它们已更改,而不需要知道它们更改了多少次),请使用字典替换diffs
,并使用dict.values()
您可以创建这个简单的
lambda
函数:要处理
n
其他DICT,您可以创建另一个函数,该函数可以这样做:相关问题 更多 >
编程相关推荐