python获取两个dict的不同
2014-05-27 11:51
274 查看
参数: dict1, dict2
需求:如果dict1和dict2中有不同的key,那么返回这个(key, dict1[key]);如果dict1和dict2中有相同的key,但是value不同,返回这个(key, dict1[key])
实现:
需求:如果dict1和dict2中有不同的key,那么返回这个(key, dict1[key]);如果dict1和dict2中有相同的key,但是value不同,返回这个(key, dict1[key])
实现:
def dict_different_data(first, second): """ get the different data bewtten two dicts objects return :result = first - second """ assert isinstance(first, dict) assert isinstance(second, dict) different_data = {} update_key = set(first).intersection(set(second)) insert_key = set(first).difference(set(second)) delet_key = set(second).difference(set(first)) #updata data item which are both on first and second and Not equal values for k in update_key: if(isinstance(first[k], dict)): result = dict_different_data(first[k], second[k]) if len(result) > 0: different_data[k] = result elif first[k] != second[k]: different_data[k] = first[k] #insert new item from first for k in insert_key: different_data[k] = first[k] #delet data for k in delet_key : different_data[k] = None return different_data if __name__ == "__main__": dic1 = { 'name': 'test', 'score': 89 } dic2 = { 'name': 'test', 'score': 29, 'age': 23 } result = dict_different_data(dic2, dic1) print result
相关文章推荐
- Java两个整形数组的对比,获取出哪些不同的
- Python 中两个字典(dict)合并
- Python中获取网页状态码的两个方法
- python字符编码导致dict中key不同
- python两个 list 获取交集,并集,差集的方法.
- Python从两个List构造Dict
- python两个整数和浮点的方法来获取值
- Python中实现两个字典(dict)合并的方法
- Python中实现两个字典(dict)合并的方法
- Python - 两个列表(list)组成字典(dict)
- Python 中两个字典(dict)合并
- JAVA获取两个List<String>中不同的数据
- python 获取本机ip地址的两个方法
- Python中获取网页状态码的两个方法
- python两个 list 获取交集,并集,差集的方法
- python两个dict相加
- python 获取本机ip地址的两个方法
- python中两个字典(dict)合并
- java获取两个数组中不同数据的方法
- 获取两个List中重复或不同的元素---removeAll()和addAll()的使用