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)

  

Python基本数据类型set方法概述的更多相关文章

  1. Python 入门之Python基础数据类型及其方法

    Python 入门之Python基础数据类型 1. 整型:int 用于计算,用于比较 (在赋值的时候先执行等号右边的内容) 1.1 整数的加 a = 10 b = 20 print(a + b) 结果 ...

  2. 【转】Python数据类型之“序列概述与基本序列类型(Basic Sequences)”

    [转]Python数据类型之“序列概述与基本序列类型(Basic Sequences)” 序列是指有序的队列,重点在"有序". 一.Python中序列的分类 Python中的序列主 ...

  3. python常用数据类型内置方法介绍

    熟练掌握python常用数据类型内置方法是每个初学者必须具备的内功. 下面介绍了python常用的集中数据类型及其方法,点开源代码,其中对主要方法都进行了中文注释. 一.整型 a = 100 a.xx ...

  4. Python数据类型及其方法详解

    Python数据类型及其方法详解 我们在学习编程语言的时候,都会遇到数据类型,这种看着很基础也不显眼的东西,却是很重要,本文介绍了python的数据类型,并就每种数据类型的方法作出了详细的描述,可供知 ...

  5. python学习日记(基础数据类型及其方法01)

    数字 int 主要是用于计算的,常用的方法有一种 #既十进制数值用二进制表示时,最少使用的位数i = 3#3的ASCII为:0000 0011,即两位 s = i.bit_length() print ...

  6. python的list()列表数据类型的方法详解

    一.列表 列表的特征是中括号括起来的,逗号分隔每个元素,列表中的元素可以是数字或者字符串.列表.布尔值......等等所有类型都能放到列表里面,列表里面可以嵌套列表,可以无限嵌套 字符串的特征是双引号 ...

  7. python——获取数据类型:type()、isinstance()的使用方法:

    python——获取数据类型   在python中,可使用type()和isinstance()内置函数获取数据类型 如: (1)type()的使用方法: >>> a = '230' ...

  8. python基本数据类型list,tuple,set,dict用法以及遍历方法

    1.list类型 类似于java的list类型,数据集合,可以追加元素与删除元素. 遍历list可以用下标进行遍历,也可以用迭代器遍历list集合 建立list的时候用[]括号 import sys ...

  9. day02 Python 的模块,运算,数据类型以及方法

    初识pyhton的模块: 什么是模块: 我的理解就是实现一个功能的函数,把它封装起来,在你需要使用的时候直接调用即可,我的印象里类似于shell 的单独函数脚本. python 的模块分为标准的和第三 ...

随机推荐

  1. JavaScript-状态模式

    状态模式 一个对象有状态变化 每次状态变化都会触发一个逻辑 不能总是用 if...else 来控制 示例:交通信号灯的不同颜色变化 传统的 UML 类图 javascript 中的 UML 类图 cl ...

  2. Zookeeper分布式协调即分布式锁机制

    主要用到的Zookeeper机制: 临时+有序节点,节点watch机制 过程: 发生分布式锁竞争时,参与竞争的各个客户端服务都到Zookeeper的同一父节点(代表着同一把锁)下建立自己的临时+有序子 ...

  3. STT-MRAM万能存储器芯片

    传统存储器的技术局限以及不断缩小的制造尺寸所带来的巨大挑战促使科研人员开始寻找新一代存储器件,它应具有接近静态存储器的纳秒级读写速度,具有动态存储器甚至闪存级别的集成密度和类似Flash的非易失性存储 ...

  4. java代码生成器 快速开发平台 二次开发 外包项目利器 springmvc SSM后台框架源码

    .   权限管理:点开二级菜单进入三级菜单显示 角色(基础权限)和按钮权限      角色(基础权限): 分角色组和角色,独立分配菜单权限和增删改查权限.      按钮权限: 给角色分配按钮权限.2 ...

  5. mysql必知必会--了解SQL

    什么是数据库 数据库这个术语的用法很多,但就本书而言,数据库是一个以某种 有组织的方式存储的数据集合.理解数据库的一种最简单的办法是将其 想象为一个文件柜.此文件柜是一个存放数据的物理位置,不管数据是 ...

  6. window10家庭版解决IIS中万维网服务的安全性中无Windows身份验证

    首先在左下角输入cmd搜索->命令提示符->以管理员身份运行->然后复制下面一段命令: dism /online /norestart /add-package:%SystemRoo ...

  7. P4392 [BOI2007]Sound 静音问题

    ---------------------- 链接:Miku ----------------------- 这道题本质上还是个st表,只要两个st表,然后对于每一个点,查询他开始的 长度为m的去年的 ...

  8. ConcurrentHashMap的size()方法(1.7和1.8)

    在1.7和1.8版本中,计算size()方法有写不同.先介绍1.7版本的实现. 1.7版本 在1.7版本中,有一个重要的类Segment,利用它来实现分段锁 static final class Se ...

  9. 《茶余饭后小故事》MV*、MVC、MVP、MVVM的前世今生

    今天我们讲讲历史,讲讲故事,不扯高深术语. MV*表示的意思是:M(Model逻辑层) + View(视图层) + *(中间者).上帝提出了这个逻辑与视图分离,用中间者进行连接的伟大思想,并将实现这个 ...

  10. Mysql基础04-查询

    关联查询 1.内连接:实现A∩B select 字段列表 from A表 inner join B表 on 关联条件 where 等其他子句; 2.左外连接 #实现查询结果是A select 字段列表 ...