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

2018-04-28  本文已影响0人  明燕南飞

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) 

上一篇 下一篇

猜你喜欢

热点阅读