我目前正在使用以下函数来比较字典值并显示所有不匹配的值。有没有更快或更好的方法来做到这一点?
match = True
for keys in dict1:
if dict1[keys] != dict2[keys]:
match = False
print keys
print dict1[keys],
print '->' ,
print dict2[keys]
编辑:两个字典都包含相同的键。
如果问题的真正意图是比较字典(而不是打印差异),那么答案是
dict1 == dict2
之前已经提到过这一点,但我觉得它有点淹没在其他信息中。看似肤浅,但字典的值比较实际上具有强大的语义。它涵盖
- 键的数量(如果不匹配,则字典不相等)
- 键的名称(如果不匹配,则它们不相等)
- 每个键的值(它们也必须是“==”)
最后一点似乎微不足道,但实际上很有趣,因为这意味着所有这些递归应用也适用于嵌套字典。例如。
m1 = {'f':True}
m2 = {'f':True}
m3 = {'a':1, 2:2, 3:m1}
m4 = {'a':1, 2:2, 3:m2}
m3 == m4 # True
列表的比较也存在类似的语义。所有这些使得例如比较深层 Json 结构,仅使用简单的“==”。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)