集合数据类型(set):集合是不重复的无需序列

1、集合数据类型的创建

a = {11,22,33}
#或
a = set() #创建空集合,不能用a={},这样创建的是字典类型

2、集合转换(将可迭代的转换为集合)

li = [11,22,33,11]
se = set(li)
print(se)  #返回{33, 11, 22}

3、set方法总结se1 = {11,22}se2 = {22,33,44}se3 = {22,33}

se1.add(33)  #se1返回{33, 11, 22},增加元素
se1.clear() #se1返回set(),清空所有元素
se_new = se1.copy() #新集合se_new 返回{11, 22},浅拷贝

se_new  = se1.difference(se2) #返回新集合,se1中存在但se2中不存在的元素
se1.difference_update(se2) #se1更新为se1中存在且se2中不存在的元素,se1={11}

se_new = se1.symmetric_difference(se2) #对称不同,实际返回两个集合并集去掉两个集合中交集元素,se_new={33, 11, 44},
实际上是se1中有se2中没有 并集于 se2中有se1中没有的
se1.symmetric_difference_update(se2) #更新对称不同,se1更新为两个集合并集去掉两个集合中交集元素,se1={33, 11, 44},
实际上是se1中有se2中没有 并集于 se2中有se1中没有的
se_new = se1.intersection(se2) #返回一个新的集合,se_new为两个集合的交集,{22}
se1.intersection_update(se2) #更新se1为se1和se2的交集,se1={22}
se_new = se1.union(se2) #返回新集合,se1与se2的并集
se1.update(se2) #se1更新为,se1与se3的并集,se1={33, 11, 44, 22}
se1.discard(11) #se1={22},抛弃一个元素,如果参数中的元素不存在,不报错
element = se1.pop() #删除任意一个元素,并将删除的元素赋值为element,element=11,se1={22},若果是空集合则抛KeyError异常
se1.remove(11) #从se1中移除11元素,se1 = {22},如果参数在set中不存在这个元素则抛出KeyError异常
bol = se1.isdisjoint(se1) #判断se1与se2是否没有交集,如果没有返回True,如果有返回False,bol=False
bol = se3.issubset(se2) #判断se3是否是子集合,se3的元素完全包含在se2内,则返回True
bol = se2.issuperset(se3) #判断se2是否是父集合,se2的元素完全包含se3,则返回True

4、set方法详细代码

class set(object):"""set() -> new empty set objectset(iterable) -> new set objectBuild an unordered collection of unique elements."""def add(self, *args, **kwargs): # real signature unknown"""Add an element to a set.This has no effect if the element is already present.添加一个元素到集合这没有影响如果元素已经存在"""passdef clear(self, *args, **kwargs): # real signature unknown""" Remove all elements from this set. 从这个集合中移除所有元素"""passdef copy(self, *args, **kwargs): # real signature unknown""" Return a shallow copy of a set. 返回一个浅拷贝的集合"""passdef difference(self, *args, **kwargs): # real signature unknown"""Return the difference of two or more sets as a new set.(i.e. all elements that are in this set but not the others.)作为一个新的集合返回两个或多个集合的不同(也就是所有元素在这个集合中,但不在另一个集合中)"""passdef difference_update(self, *args, **kwargs): # real signature unknown""" Remove all elements of another set from this set. 从这个集合中删除另一个集合的所有元素"""passdef discard(self, *args, **kwargs): # real signature unknown"""Remove an element from a set if it is a member.If the element is not a member, do nothing.从一个集合中移除一个元素,如果它是个成员如果这个元素不是一个成员,什么也不做"""passdef intersection(self, *args, **kwargs): # real signature unknown"""Return the intersection of two sets as a new set.(i.e. all elements that are in both sets.)作为一个新的集合返回两个集合的交集(也就是,所有在两个结合中都有对的元素)"""passdef intersection_update(self, *args, **kwargs): # real signature unknown""" Update a set with the intersection of itself and another. 更新一个集合用自己和另一个集合的交集"""passdef isdisjoint(self, *args, **kwargs): # real signature unknown""" Return True if two sets have a null intersection. 返回True 如果两个集合没有交集"""passdef issubset(self, *args, **kwargs): # real signature unknown""" Report whether another set contains this set. 报告是否另一个集合包含这个集合"""passdef issuperset(self, *args, **kwargs): # real signature unknown""" Report whether this set contains another set. 报告是否这个集合包含另一个集合"""passdef pop(self, *args, **kwargs): # real signature unknown"""Remove and return an arbitrary set element.Raises KeyError if the set is empty.移除并返回任意集合元素抛出KeyError 如果集合是空的"""passdef remove(self, *args, **kwargs): # real signature unknown"""Remove an element from a set; it must be a member.If the element is not a member, raise a KeyError.从集合中移除一个元素;它必须是一个成员。如果这个元素不是一个成员,抛出KeyError异常"""passdef symmetric_difference(self, *args, **kwargs): # real signature unknown"""Return the symmetric difference of two sets as a new set.(i.e. all elements that are in exactly one of the sets.)作为一个新的集合返回两个集合的对称不同(也就是所有元素正好在众集合中的一个)实际上是a集合存在且b集合中不存在的元素,并集于,b集合存在且a集合不存在的元素"""passdef symmetric_difference_update(self, *args, **kwargs): # real signature unknown""" Update a set with the symmetric difference of itself and another. 更新一个集合用自己和另一个集合的不同"""passdef union(self, *args, **kwargs): # real signature unknown"""Return the union of sets as a new set.(i.e. all elements that are in either set.)作为一个新的集合返回集合的并集。也就是在这两个集合中的所有元素)"""passdef update(self, *args, **kwargs): # real signature unknown""" Update a set with the union of itself and others. 更新一个集合用自己和另一个集合的并集"""passdef __and__(self, *args, **kwargs): # real signature unknown""" Return self&value. """passdef __contains__(self, y): # real signature unknown; restored from __doc__""" x.__contains__(y) <==> y in x. """passdef __eq__(self, *args, **kwargs): # real signature unknown""" Return self==value. """passdef __getattribute__(self, *args, **kwargs): # real signature unknown""" Return getattr(self, name). """passdef __ge__(self, *args, **kwargs): # real signature unknown""" Return self>=value. """passdef __gt__(self, *args, **kwargs): # real signature unknown""" Return self>value. """passdef __iand__(self, *args, **kwargs): # real signature unknown""" Return self&=value. """passdef __init__(self, seq=()): # known special case of set.__init__"""set() -> new empty set objectset(iterable) -> new set objectBuild an unordered collection of unique elements.# (copied from class doc)"""passdef __ior__(self, *args, **kwargs): # real signature unknown""" Return self|=value. """passdef __isub__(self, *args, **kwargs): # real signature unknown""" Return self-=value. """passdef __iter__(self, *args, **kwargs): # real signature unknown""" Implement iter(self). """passdef __ixor__(self, *args, **kwargs): # real signature unknown""" Return self^=value. """passdef __len__(self, *args, **kwargs): # real signature unknown""" Return len(self). """passdef __le__(self, *args, **kwargs): # real signature unknown""" Return self<=value. """passdef __lt__(self, *args, **kwargs): # real signature unknown""" Return self<value. """pass@staticmethod # known case of __new__def __new__(*args, **kwargs): # real signature unknown""" Create and return a new object.  See help(type) for accurate signature. """passdef __ne__(self, *args, **kwargs): # real signature unknown""" Return self!=value. """passdef __or__(self, *args, **kwargs): # real signature unknown""" Return self|value. """passdef __rand__(self, *args, **kwargs): # real signature unknown""" Return value&self. """passdef __reduce__(self, *args, **kwargs): # real signature unknown""" Return state information for pickling. """passdef __repr__(self, *args, **kwargs): # real signature unknown""" Return repr(self). """passdef __ror__(self, *args, **kwargs): # real signature unknown""" Return value|self. """passdef __rsub__(self, *args, **kwargs): # real signature unknown""" Return value-self. """passdef __rxor__(self, *args, **kwargs): # real signature unknown""" Return value^self. """passdef __sizeof__(self): # real signature unknown; restored from __doc__""" S.__sizeof__() -> size of S in memory, in bytes """passdef __sub__(self, *args, **kwargs): # real signature unknown""" Return self-value. """passdef __xor__(self, *args, **kwargs): # real signature unknown""" Return self^value. """pass__hash__ = None

5、实例需求

old_dic = {"#1":11,"#2":22,"#3":33}new_dic = {"#3":44,"#4":55,"#5":66}需求:1、old_dic与new_dic如果字典key值相同,则new的值更新到old里面2、new里面存在old里面不存在,则在old里面添加3、old中存在new中不存在则在old中删除
old_dic = {"#1":11,"#2":22,"#3":33}
new_dic = {"#3":44,"#4":55,"#5":66}old_set = set(old_dic.keys()) #key值转换为集合
new_set = set(new_dic.keys())
set_inter = old_set.intersection(new_set)  #old与new交集
for i in set_inter:  #更新old列表old_dic[i] = new_dic[i]
set_new_dife = new_set.difference(old_set) #new里面存在,old里面不存在的集合
for i in set_new_dife:old_dic[i] = new_dic[i]
set_old_dife = old_set.difference(new_set) #old里面存在,new里面不存在的集合
for i in set_old_dife:old_dic.pop(i)
print(old_dic)

  


转载于:https://www.cnblogs.com/sunshuhai/p/6287847.html

【python之路11】集合数据类型(set)相关推荐

  1. Python之路(基本数据类型及操作)

    基本数据类型 数字类型 整数类型 定义:可正可负,与数学中定义一致 #将字符串转化为数字 a = "123" b = int(a) print(type(a),a) <cla ...

  2. 小白的python之路11/3总结

    ln-s 指定源是谁 l是软连接,其中源文件相当于快捷方式 1.打包 归档命令 tar -cvzf test.tar a.txt b.txt c.txt其中c是创建,v是详细信息,f是打包后文件名,a ...

  3. Python之路【第五篇】:Python基本数据类型

    type函数 利用type()函数可以查看数据的类型,比如说是str类型,在编辑器中写上str,按住ctrl,点击str, 就到了源码定义的部分,所有str的功能都在这里了,同样,对于一个str变量t ...

  4. number 限制最长数字_阿博的Python之路Number数据类型详解

    这是阿博的第15篇文章 之前阿博分享了Python的三种可变数据类型以及三种不可变数据类型.在这里阿博会详细解析Number数据类型. 注意:阿博的编译环境是Python3. Number数据类型 N ...

  5. [转载] Python中的set(集合)数据类型

    参考链接: Python集合set add函数 Python中的set(集合)数据类型 Python中除了常见的Numbers(数字).String(字符串).List(列表).Tuple(元组).D ...

  6. python中集合的元素可以是任意数据类型_详解Python集合数据类型

    本篇介绍Python集合数据类型.集合不同于列表和元组类型,集合存储的元素是无序且不能重复的,同数学中的集合一样,集合可以执行集合的并.交.差运算.通过本篇的学习,可以达成如下目标. ● 掌握集合数据 ...

  7. 【社区图书馆】《网络工程师的Python之路:网络运维自动化实战(第2版)》

    文章目录 图书前言 图书简介 图书作者.简介 图书好评 图书目录 总结:本人选择此图书的意义 图书前言 光阴似箭,岁月如梭.转眼之间,距离本书最早的电子书出版已经过去了三年之久.承蒙广大读者的厚爱,电 ...

  8. 在python中print表示的数据类型是_【Python连载】那些必须掌握的Python数据类型

    原标题:[Python连载]那些必须掌握的Python数据类型 经过近几年的发展,Python已成为了数据科学和机器学习的首选语言,许多人也因此开始走上自学python之路.从今天开始,本公众号将陆续 ...

  9. python之路6-迭代器、生成器、装饰器

    1.迭代器&生成器 列表生成式 现在有个需求,列表[1,2,3,4,5,6,7,,8,9],要求把列表里的每个值加1,如何实现? 方法一: list = [1,2,3,4,5,6,7,8,9] ...

  10. python自学入门教程-Python自学入门基础教程-数据类型

    在程序中,被运算的可分为常量(Literals)和变量(Variables) 1x = 10*2-5 2y = x+1 以上的变量都属于Python数据类型中的一部分. 在以上代码中,10.2.5都是 ...

最新文章

  1. pythonfile操作教程_Python基础教程之文件操作
  2. c语言学习题,C语言学习题目
  3. Python os和os.path的基础知识与常用操作
  4. sort and uniq
  5. rabbitnq 源码安装_linux下源码安装rabbitMq
  6. c++中调用Com组件的方法详解
  7. AbsListView.LayoutParams
  8. Android 常用权限
  9. XGBoost入门及实战
  10. PAT 乙级A1025 适合当算法入门练习题做
  11. 爬取链家房价信息存储并分析——mongodb存储和聚合查询
  12. Camera成像中的Demosaic
  13. java实习面试题整理
  14. js 树形结构数据 已知某一子节点 一次向上获取所有父节点
  15. 萨鲁曼的军队 Saruman‘s Army(挑战程序设计竞赛)
  16. 用计算机c语言输出你好,编写第一个C语言程序 - Hello World
  17. PUTTY中永久更改字体大小
  18. display:block含义
  19. python爬虫爬取4K图片实例
  20. 兰小欢《置身事内》读书笔记,含思维导图(PDF+epub+mobi+azw3分享)

热门文章

  1. Node.js格式化输出json文件
  2. 反编译那些事儿(四)—序列化问题
  3. SpringBoot整合Shiro(Java安全框架)案例(含源码)
  4. SO_LINGER选项
  5. 单片机输出脉冲的C语言简易程序,单片机简易程序, 电子琴 内附图 有说明...
  6. 带小手的文档怎么复制
  7. 2021-1-28Linux学习纪要
  8. qt设置文本背景透明_QT QWidget设置窗体透明度方法汇总
  9. linux中逻辑块大小为,Linux 文件系统相关的基本概念
  10. java 数据源xml 展示到界面_ZK开发关键知识点