set 是一个无序且不重复的元素集合
>>> num = {1,2,3,4,5} 1.add()添加一个元素
>>> num.add(6)
>>> num
>>> {1,2,3,4,5,6} 2.clear()清除集合中所有元素
>>> num.clear()
>>> num
>>> set() 3.copy()复制一个集合
>>> num1 = num.copy()
>>> num1
>>> {1,2,3,4,5} 4.difference()取得集合在一个或多个集合中不同的元素
>>> num1 = {2,4,6,8,10}
>>> num2 = {1,3,11,12,14}
#返回在一个集合中不同的元素
>>> num.difference(num1)
>>> {1,3,5}
#返回在多个集合中不同的元素
>>> num.difference(num1,num2)
>>> {5} 5.difference_update()删除当前集合中所有包含在新集合里的元素
>>> num1 = {2,4,6,8,10}
>>> num2 = {1,2,11,13}
>>> num.difference_update(num1,num2)
>>> num
>>> {3,5} 6.discard()从集合中移除一个元素,如果元素不存在,不做任何处理
>>> num.discard(1)
>>> num
>>> {2,3,4,5} 7.intersection()取交集,新建一个集合
>>> num1 ={1,3,5,7,9}
>>> num.intersection(num1)
>>> {1,3,5} 8.intersection_update()取交集,修改与原来的集合
>>> num1 = {1,3,5,7,9}
>>> num.intersection_update(num1)
>>> num
>>> {1,3,5} 9.isdisjoint()如果没有交集,返回True
>>> num2 ={6,8,10}
>>> num.isdisjoint(num2)
>>> True 10.pop()从集合开头移除一个元素
>>> num.pop()
>>> 1
>>> num
>>> {2,3,4,5}
PS:如果集合为空,返回错误提示 11.symmetric_difference()差集,创建新对象
>>> num = {1,2,3,4,5,6}
>>> num1 = {2,3,4,6,8,9}
>>> num.symmetric_difference(num1)
>>> {1,5,8,9} 12.symmetric_difference_update()差集,改变原来的集合
>>> num = {1,2,3,4,5,6}
>>> num1 = {2,3,4,6,8,9}
>>> num.symmetric_difference_update(num1)
>>> num
>>> {1,5,8,9} 13.union()并集,返回一个新集合
>>> num ={1,2,4,6,7}
>>> num1 ={,2,4,6,8,10,12}
>>> num.union(num1)
>>> {1,2,4,6,7,8,10,12} 14.update()并集,并更新该集合
>>> num ={1,2,4,6,7}
>>> num1 ={,2,4,6,8,10,12}
>>> num.update(num1)
>>> num
>>> {1,2,4,6,7,8,10,12} 小练习:
 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}
}
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 = set(old_dict.keys())
update_list = list(old_set.intersection(new_dict.keys())) new_list = []
del_list = [] for i in new_dict.keys():
  if i not in update_list:
    new_list.append(i)
for i in old_dict.keys():
  if i not in update_list:
    del_list.append(i)
print (update_list,new_list,del_list,new_dict.keys())
print(new_dict)

结果为:
>>> ['#1', '#3'] ['#4'] ['#2'] dict_keys(['#1', '#3', '#4'])
>>>{
'#1': {'mem_capicity': 800, 'hostname': 'c1', 'cpu_count': 2},
'#3': {'mem_capicity': 80, 'hostname': 'c1', 'cpu_count': 2},
'#4': {'mem_capicity': 80, 'hostname': 'c2', 'cpu_count': 2}
}

最新文章

  1. 数百个 HTML5 例子学习 HT 图形组件 – 3D 建模篇
  2. Flask_more1
  3. 【lattice软核】ROM的使用
  4. iOS方法类:CGAffineTransform的使用大概
  5. gulpfile.js 合并压缩 requirejs 的配置文件
  6. Introduction to Face Detection and Face Recognition
  7. 161116、springmvc自己实现防止表单重复提交(基于注解)
  8. java 个人总结
  9. [Everyday Mathematic]20150213
  10. Objective-c 数组对象
  11. 系列3|走进Node.js之多进程模型
  12. Android为TV端助力:(转载)修改TextView字体样式
  13. celery (二) task
  14. 洛谷 P1129 [ZJOI2007]矩阵游戏 解题报告
  15. 为jqweui增加selectcallback方法
  16. python-文件读写操作
  17. 关于vmvawe的光驱,iso镜像,挂载,卸载
  18. http/2 多路复用技术
  19. Java并发集合(二)-ConcurrentSkipListMap分析和使用
  20. Andriod NDK编译的时候无法使用math.h的函数。

热门文章

  1. SSM数据库数据导出excel
  2. 【DS】排序算法之插入排序(Insertion Sort)
  3. 数据库类型与JDBC TYPE 和Java类型对应关系
  4. uva 10625 Board Wrapping
  5. WHAT I READ FOR DEEP-LEARNING
  6. 读asyncio模块源码时的知识补漏
  7. jQuery1.11源码分析(2)-----Sizzle源码中的正则表达式[原创]
  8. 【三分钟视频教程】iOS开发中 Xcode 报 apple-o linker 错误的#解决方案#
  9. swift3.0之后的Error处理
  10. 利用iis虚拟目录实现文件服务器功能