练习-python集合set
2016-04-22 15:53
766 查看
#寻找差异 #要求:原来没有的,新加入;原来有的,更新;新的没有,原来的有,删除原来的 #无需考虑内部元素改变 #数据库中原有 old_dict = { "#1":{ "hostname":"c1", "cpu_count": 2, "mem_capicity": 80 }, "#2":{ "hostname":"c1", "cpu_count": 2, "mem_capicity": 80 }, "#3":{ "hostname":"c1", "cpu_count": 2, "mem_capicity": 80 } } #cmdb 新汇报的数据 new_dict = { "#1":{ "hostname":"c1", "cpu_count": 2, "mem_capicity": 800 }, "#3":{ "hostname":"c1", "cpu_count": 2, "mem_capicity": 80 }, "#4":{ "hostname":"c2", "cpu_count": 2, "mem_capicity": 80 } } old = set(old_dict.keys()) new = set(new_dict.keys()) update_set = old.intersection(new) #交集,输出更新的数据 delete_set = old.symmetric_difference(update_set) #差集,新的没有,旧的有的,删除 add_set = new.symmetric_difference(update_set) #差集,新的有,旧的没有,添加 print(update_set) print(delete_set) print(add_set) old_dict.pop("#2") old_dict.update(new_dict) print(old_dict) #执行结果:
{'#1', '#3'}
{'#2'}
{'#4'}
{'#4': {'mem_capicity': 80, 'hostname': 'c2', 'cpu_count': 2}, '#3': {'mem_capicity': 80, 'hostname': 'c1', 'cpu_count': 2}, '#1': {'mem_capicity': 800, 'hostname': 'c1', 'cpu_count': 2}}
相关文章推荐
- python模块:doctest,unitest模块
- SIFT图像特征提取 python3.4 + opencv3.1.0代码
- Python中的random模块
- 01.Win10 系统下python3.4连接mysql数据库
- Python爬虫入门笔记:一个简单的爬虫架构
- Python Matplotlib库入门指南
- python摘要
- python邮件发送
- python中requests使用代理proxies
- Windos 下python2.7安装 pymssql 解决方案
- python for循环
- Python 素数判断;以及默尼森数
- python 如何实现反转倒序
- python中的 字符串与list的互相转换 (join函数的使用)
- python版本
- Python之SQLAlchemy
- Python学习-机器学习实战-ch05 Logistic回归
- python while循环
- 理解Python的with语句
- python的exec, execfile,compile, eval