li=[1,2,3,4,5,6,3,2,1]
s2 = set(li)
print(set(li))
#difference()去除相同项,生成一个新的集合,删除
s3=s2.difference([1,2,3,11])
set1 = {1,44,87,23,55}
set2 = {1,44,88,23,67}
# difference()比较元素 set1中有而set2中没有
ret = set1.difference(set2)
print(ret)#{55, 87}
print(set1)
print(set2)
#difference_update()删除两集合中相同的元素--
#从set1中删除和set2中相同的元素
set1.difference_update(set2)
print(set1)
print(set2)
#discard(valyes) 移除元素
#移除指定元素,不存在不会报错,remove()不存在会报错,建议discard
set1.discard(4)
print(set1)
#intersection()取交集值
set1 = {1,44,87,23,55}
set2 = {1,44,88,23,67}
ret = set1.intersection(set2)
print(set1)
#intersection_difference()取交集并更新
#取交集并更新到set1中
set1.intersection_update(set2)
print(set1)
#symmetric_difference()对称交集
#对称交集,取两个集合中互不存在的元素,生成一个新的集合
ret = set1.symmetric_difference(set2)
print(ret)#{67, 55, 87, 88}
symmetric_difference_update()对称交集并更新
set1.symmetric_difference_update(set2)
#对称交集,并更新元素到set1中
print(set1)
#union()并集
#并集并更新到新的集合中
ret = set1.union(set2)
print(ret) # 数据库中原有 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':"c2", 'cpu_count': 2, 'mem_capicity': 800 },
"#3":{ 'hostname':"c2", 'cpu_count': 2, 'mem_capicity': 80 },
"#4":{ 'hostname':"c2", 'cpu_count': 2, 'mem_capicity': 80 }
}
"""
分析:
1、新有,原来无→新加入
2、新有,原来有→更新
3、新无,原来有→原来删除
使用set的交集和差集来计算
old_dict.keys()
new_dict.keys()
交集(更新):要更新的数据
差集(删除):old_dict.keys()--交集
差集(添加):new_dict.keys()--交集
"""
old=set(old_dict.keys())
new=set(new_dict.keys())
up_set=old.intersection(new) #需要更新的集合
del_set=old.symmetric_difference(up_set) #需要删除的集合
add_set=new.symmetric_difference(up_set) #需要添加的集合
print(up_set)
print(del_set)
print(add_set)

  

最新文章

  1. 【bzoj1708】[USACO2007 Oct]Money奶牛的硬币
  2. 使用CocoaPods开发并打包静态库
  3. 【开源】开发者新闻聚合APP 1.0.3发布(第一个稳定版本,短期内不再发布新版本)
  4. Intent 匹配规则
  5. zTree的使用
  6. Tomcat日志配置
  7. java基础之运算符
  8. 【转】shell 教程——07 Shell特殊变量:Shell $0, $#, $*, $@, $?, $$和命令行参数
  9. echarts.制作中国地图,点击对应的省市链接到该省份的详细介绍
  10. 基于visual Studio2013解决C语言竞赛题之1066进制转化
  11. HDU-AcmKeHaoWanLe训练实录
  12. 开启BBR
  13. Jenkins安装使用教程
  14. 一些常见的Java面试题 & 面试感悟
  15. html:input的type=number的时候maxlength失效问题
  16. Spring Extensible XML
  17. sublime text 3浅色主题
  18. 廖雪峰Java5Java集合-5Queue-1使用Queue
  19. SQL Server事务复制搭建与同步经验
  20. PCL点云分割(2)

热门文章

  1. SpringCloud学习之—Eureka集群搭建
  2. 在webform中使用ajax
  3. java设计模式学习笔记--开闭原则
  4. wow.js wow.min.js animate.css animate.min.css
  5. 移动端rem.js
  6. 2019年终总结之SAP项目实践篇
  7. pikachu-SQL注入漏洞
  8. Win10好用的快捷键
  9. Scheduled和HttpClient的连环坑
  10. ubuntu 1804 rsync 命令 服务端配置