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}
}

Python学习——set集合的补充的更多相关文章

  1. python学习-第四天补充-面向对象

    python学习-第四天补充-面向对象 python 私有 --name mangling(名字修改.名字) 在命名时,通过使用两个下划线作为开头,可以使得这个变量或者函数编程私有的,但是这个其实的p ...

  2. python 基础 set 集合类型补充

    为啥今天又重提这个数据类型呢?平时用的少,等要用起来的时候才发现,自己对这块啥都不知道了,so,今天就把这块再梳理一下咯. 一.set集合,是一个无序且不重复的元素集合.这一点是非常重要的. 二.集合 ...

  3. python学习day5 常量 运算符补充 流程控制基础

    1.常量 值不会改变的量 python中没有特别的语法定义常量,一般约定用全大写字母命名常量,比如圆周率pi 2.预算符补充 2.1算数运算符 print(10/3)除法运算 print(10//3) ...

  4. Python学习五|集合、布尔、字符串的一些特点

    #集合本身就像无值的字典 list1 = set([1,2,3,4]) list2 = {1,2,3,4} print('list1 == list2?:',list1==list2)#list1 = ...

  5. Python学习之==>集合

    1.简介 集合也是一种数据类型,一个类似列表东西,它的特点是无序的,不重复的,也就是说集合中是没有重复数据的. 2.集合的作用 它可以把一个列表中重复的数据去掉,而不需要你再写判断 可以做关系测试,比 ...

  6. Python学习笔记——集合类型

    集合类型有两种不同的类型——可变集合(set)和不可变集合(frozenset) 可变集合不是可哈希的,不能用作字典的键,也不能用做其他集合中的元素 不可变集合是有哈希值的,能被用做字典的键或者是作为 ...

  7. python学习之集合

    集合(set)是一个无序的不重复元素序列. 可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典. 创建格 ...

  8. day5:python学习之集合

    0. 集合的作用及特点 集合具有去重和关系测试两大作用,它具有无序的特点. list1 = [1,2,3,4,5,7,6,8,6,4] list1 = set(list1) print(list1) ...

  9. Python学习 :集合

    集合 Set 集合的创建 集合的创建只有一种方式 集合中的元素必须是不可变的数据类型 集合是无序的,可以通过 for 循环来遍历或者迭代器进行筛选 s=set('xiaoming') s1=['ale ...

随机推荐

  1. Openstack 网络服务 Neutron介绍和控制节点部署 (九)

    Neutron介绍 neutron是openstack重要组件之一,在以前是时候没有neutron项目. 早期的时候是没有neutron,早期所使用的网络的nova-network,经过版本改变才有个 ...

  2. Java基础-JVM调优策略简介

    Java基础-JVM调优策略简介 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.JVM结构分析 1>.JVM结构图 2>.JVM运行时数据区功能说明 JVM管理的内 ...

  3. matplotlib交互模式与pacharm单独Figure设置

    matplotlib交互模式与pacharm单独Figure设置 觉得有用的话,欢迎一起讨论相互学习~Follow Me Matpotlib交互模式 在运行python程序时有时候需要生成以下的 动态 ...

  4. 何凯文每日一句打卡||DAY13

  5. dedecms织梦首页判断,添加不同标题

    <title> {dede:field.title/} {dede:field name='typeid' runphp="yes"}(@me==0)? @me=&qu ...

  6. ssh-copy-id 复制公钥到远程server

    ssh-copy-id -i ~/.ssh/mykey.pub user@host 复制完成后可以测试: ssh -i ~/.ssh/mykey user@host

  7. VBScript操作SFTP

    示例代码主要通过VBScript实现对SFTP的上传下载功能 ' Return yyyyMM base on current date Function FormatCurrentDate() Cur ...

  8. Dream------Hbase--0.94版本和0.98/1.X版本api变动

    Dream------Hbase--0.94版本和0.98/1.X版本api变动 网上好多说getQualifier.getValue.getRow被..Array代替了,其实并不是的. 1. Int ...

  9. mysql Keepalived 实践

    Keepalived 是一种高性能的服务器高可用或热备解决方案,Keepalived可以用来防止服务器单点故障(单点故障是指一旦某一点出现故障就会导致整个系统架构的不可用)的发生,通过配合Nginx可 ...

  10. 错误的理解引起的bug async await 执行顺序

    今天有幸好碰到一个bug,让我知道了之前我对await async 的理解有点偏差. 错误的理解 之前我一直以为  await 后面的表达式,如果是直接返回一个具体的值就不会等待,而是继续执行asyn ...