我感兴趣的是比较两组词典。我知道,为了做到这一点,字典必须使用冷冻集来制作,但接下来是什么?一种优雅的方式来比较可清洗的字典键?
actual_set = [{
'Cgroups': 'rwm',
'PathInContainer': '/dev/xnull',
'PathOnHost': '/dev/null'
}]
d = {
'Cgroups': 'rwm',
'PathInContainer': '/dev/xnull',
'PathOnHost': '/dev/null'
}
hashed_devices = frozenset(expected_devices.items())
for key in hashed_devices:
# assert actual_Set == set(hashed_Devices)
这里如何将实际集与散列设备进行比较?
答案 0 :(得分:1)
如果您只想查找两个词典是否相同,那么这四个词典会给您最好的答案:dict1 == dict2
。
如果要查找两个词典之间的区别,可以尝试set的symmetric_difference()操作。例如,
dict1 = {'a':1, 'b':2, 'c':3}
dict2 = {'b':2, 'c':3, 'd':4}
set1 = set(dict1.items())
set2 = set(dict2.items())
set1.symmetric_difference(set2)
会显示一个带有(键,值)对的新集合,这些对在dict1或dict2中,但不是两者都有,这里是set([('a', 1), ('d', 4)])
。
顺便说一句,您可以轻松使用dict()将其转换为包含dict1和dict2之差的字典。