首页 > 技术文章 > python3 字典比较函数

kllay 2018-08-01 17:06 原文

#比较字典函数是否相等
def get_cmp_dict(self,src_data,dst_data):
if isinstance(src_data,str):
src_data=json.dumps(src_data)
if isinstance(dst_data,str):
dst_data=json.dumps(dst_data)
if len(src_data) != len(dst_data):
return False
else:
src_key=list(src_data.keys())
dst_key=list(dst_data.keys())
if operator.eq(src_key,dst_key):
src_val=list(src_data.values())
dst_val=list(dst_data.values())
if operator.eq(src_val,dst_val):
for key in src_data.keys():
if src_data[key] != dst_data[key]:
# print(src_data1[key])
return False
return True
else:
return False
else:
return False

#使用函数 
dict1 = {'Name': 'asf', 'Age': 7}
dict2 = {'Name': 'fsafsad', 'Age': 27,"sdaf":23}
dict3 = {'Name': '33', 'Age': 27}
dict4 = {'Name': 'asf', 'Age': 7}
print(get_cmp_dict(dict1, dict3))

 

 

2.判断是否包含

   #比较字典函数是否包含
    def get_contain_dict(self,src_data,dst_data):
        if isinstance(src_data,str):
            src_data=json.dumps(src_data)
        if isinstance(dst_data,str):
            dst_data=json.dumps(dst_data)
        else:
            src_key=list(src_data.keys())
            dst_key=list(dst_data.keys())
            # print(str(src_key))
            # print(str(dst_key))
            pd=[False for c in src_key if c not in dst_key]
            if pd:
                return False
            else:
                src_val = list(src_data.values())
                dst_val = list(dst_data.values())
                pds = [False for c in src_val if c not in dst_val]
                if pds:
                    return False
                else:
                    return True

  

 

 

 

 

 

推荐阅读