python - python比较字典只返回真/假
问题描述
我有 2 部字典,我正在寻找比较它们。我想打印差异总数。
以下程序可以完美地报告所有差异,我应该如何修改它以仅返回总计数。
d1= {'a':{'b':{'cs':10}, 'd':{'cs':20}}}
d2= {'a':{'b':{'cs':30} ,'d':{'cs':20}}}
def findDiff(d1, d2, path=""):
for k in d1.keys():
if not d2.has_key(k):
print path, ":"
print k + " as key not in d2", "\n"
else:
if type(d1[k]) is dict:
if path == "":
path = k
else:
path = path + "->" + k
findDiff(d1[k],d2[k], path)
else:
if d1[k] != d2[k]:
print path, ":"
print " - ", k," : ", d1[k]
print " + ", k," : ", d2[k]
print "comparing d1 to d2:"
print findDiff(d1,d2)
电流输出:
comparing d1 to d2:
a->b :
- cs : 10
+ cs : 30
None
预期输出:
comparing d1 to d2:
no of differences: 1
解决方案
推荐阅读
- assembly - How to understand what to put in registers from documentation?
- javascript - It is possible to pass additional objects aside the response.data in ExpressJS?
- python - 正则表达式在双引号之间提取不超过十个单词
- python - Segmentation fault (Core dumped) on importing torch with python3.5 in virtualenv
- mule - DataWeave:何时/否则语句返回 null
- php - http请求通过android中的php从数据库中获取数据,使用浏览器的结果不同
- database - 简单的数据库规范化
- python - 如何对 N 个元素的列表进行排序,然后用 -1 替换 0 到 N 之间的缺失值
- android - 从 JSON 获取数据到 List 并使用 GSON 将其用于 RecyclerView
- c++ - c++图形库访问冲突