1. li=[1,2,3,4,5,6,3,2,1]
  2. s2 = set(li)
  3. print(set(li))
  4. #difference()去除相同项,生成一个新的集合,删除
  5. s3=s2.difference([1,2,3,11])
  6. set1 = {1,44,87,23,55}
  7. set2 = {1,44,88,23,67}
  8. # difference()比较元素 set1中有而set2中没有
  9. ret = set1.difference(set2)
  10. print(ret)#{55, 87}
  11. print(set1)
  12. print(set2)
  13. #difference_update()删除两集合中相同的元素--
  14. #从set1中删除和set2中相同的元素
  15. set1.difference_update(set2)
  16. print(set1)
  17. print(set2)
  18. #discard(valyes) 移除元素
  19. #移除指定元素,不存在不会报错,remove()不存在会报错,建议discard
  20. set1.discard(4)
  21. print(set1)
  22. #intersection()取交集值
  23. set1 = {1,44,87,23,55}
  24. set2 = {1,44,88,23,67}
  25. ret = set1.intersection(set2)
  26. print(set1)
  27. #intersection_difference()取交集并更新
  28. #取交集并更新到set1中
  29. set1.intersection_update(set2)
  30. print(set1)
  31. #symmetric_difference()对称交集
  32. #对称交集,取两个集合中互不存在的元素,生成一个新的集合
  33. ret = set1.symmetric_difference(set2)
  34. print(ret)#{67, 55, 87, 88}
  35. symmetric_difference_update()对称交集并更新
  36. set1.symmetric_difference_update(set2)
  37. #对称交集,并更新元素到set1中
  38. print(set1)
  39. #union()并集
  40. #并集并更新到新的集合中
  41. ret = set1.union(set2)
  42. print(ret)
  43.  
  44. # 数据库中原有
  45.  
  46. old_dict = {
  47. "#1":{ 'hostname':"c1", 'cpu_count': 2, 'mem_capicity': 80 },
  48. "#2":{ 'hostname':"c1", 'cpu_count': 2, 'mem_capicity': 80 },
  49. "#3":{ 'hostname':"c1", 'cpu_count': 2, 'mem_capicity': 80 }
  50. }
  51.  
  52. # cmdb 新汇报的数据
  53. new_dict = {
  54. "#1":{ 'hostname':"c2", 'cpu_count': 2, 'mem_capicity': 800 },
  55. "#3":{ 'hostname':"c2", 'cpu_count': 2, 'mem_capicity': 80 },
  56. "#4":{ 'hostname':"c2", 'cpu_count': 2, 'mem_capicity': 80 }
  57. }
  58. """
  59. 分析:
  60. 1、新有,原来无→新加入
  61. 2、新有,原来有→更新
  62. 3、新无,原来有→原来删除
  63. 使用set的交集和差集来计算
  64. old_dict.keys()
  65. new_dict.keys()
  66. 交集(更新):要更新的数据
  67. 差集(删除):old_dict.keys()--交集
  68. 差集(添加):new_dict.keys()--交集
  69. """
  70. old=set(old_dict.keys())
  71. new=set(new_dict.keys())
  72. up_set=old.intersection(new) #需要更新的集合
  73. del_set=old.symmetric_difference(up_set) #需要删除的集合
  74. add_set=new.symmetric_difference(up_set) #需要添加的集合
  75. print(up_set)
  76. print(del_set)
  77. 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. pocsuite3使用教程

    pocsuite3使用教程 0X00简介 PocSuite3是Knownsec 404安全研究团队设计的一款远程漏洞测试以及PoC开发框架,该框架使用了功能极其强大的概念验证引擎,并自带了大量渗透测试 ...

  2. com.google.gson json字符串的序列化与反序列化

    经常做协议的时候用到json,个人习惯是定义协议文档,很少在这中场景中定义类,使用对象. 这里使用一个人物有名字,性别,有一个物品列表做个简单示例记录. 序列化 JsonObject jo=new J ...

  3. js对象模型3

    3

  4. viewpage+RadioButton+Fragment简单导航界面

    https://blog.csdn.net/qibanxuehua/article/details/47333879

  5. 解决在jsp页面中使用jstl无法遍历request域中list集合的问题

    解决在jsp页面中使用jstl无法遍历request域中list集合的问题 1. 前言 ​ 最近在写一个很简单的Javaweb项目,里面需要将request域中的list集合加载到jsp页面,我使用e ...

  6. VLAN和子网之间的区别与联系

    通常来说,子网和VLAN的相似之处在于它们都处理网络的一部分的分段或分区.但是,VLAN是数据链路层(OSI L2)的构造,而子网是网络层(OSI L3)的IP构造,它们解决网络上的不同问题.尽管在V ...

  7. C++关于锁的总结(一)

    C++关于锁的总结(一) 线程中的锁分为两种,互斥锁和共享锁. 相关的头文件有<mutex>,<shared_mutex>,前者具有std::unique_lock操作,用于实 ...

  8. IIS在已有站点上->添加应用程序命令

    已有站点:HTTP80 %systemroot%\system32\inetsrv\APPCMD ADD APP /SITE.NAME:"HTTP80" /path:/Redire ...

  9. 剑指offer-面试题4-二维数组中的查找-数组

    /* 题目: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序. 请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. */ /* 解题 ...

  10. Tutorial: Publishing additional services for printing

    Complexity:IntermediateData Requirement:Use your own data There may be occasions when you need to pu ...