2018-04-28 对比两个字典-递归法

def cmp_dict(src_data,dst_data):

    assert type(src_data) == type(dst_data),"type: '{}' != '{}'".format(type(src_data), type(dst_data)) 

    if isinstance(src_data,dict): 

        assert len(src_data) == len(dst_data),"dict len: '{}' != '{}'".format(len(src_data), len(dst_data)) 

        for key in src_data:                 

            assert dst_data.has_key(key)     

            cmp_dict(src_data[key],dst_data[key])     

    elif isinstance(src_data,list):                   

        assert len(src_data) == len(dst_data),"list len: '{}' != '{}'".format(len(src_data), len(dst_data))     

        for src_list, dst_list in zip(sorted(src_data), sorted(dst_data)): 

            cmp_dict(src_list, dst_list) 

    else: 

        assert src_data == dst_data,"value '{}' != '{}'".format(src_data, dst_data) 

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容