【python之路11】集合数据类型(set)
集合数据类型(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)相关推荐
- Python之路(基本数据类型及操作)
基本数据类型 数字类型 整数类型 定义:可正可负,与数学中定义一致 #将字符串转化为数字 a = "123" b = int(a) print(type(a),a) <cla ...
- 小白的python之路11/3总结
ln-s 指定源是谁 l是软连接,其中源文件相当于快捷方式 1.打包 归档命令 tar -cvzf test.tar a.txt b.txt c.txt其中c是创建,v是详细信息,f是打包后文件名,a ...
- Python之路【第五篇】:Python基本数据类型
type函数 利用type()函数可以查看数据的类型,比如说是str类型,在编辑器中写上str,按住ctrl,点击str, 就到了源码定义的部分,所有str的功能都在这里了,同样,对于一个str变量t ...
- number 限制最长数字_阿博的Python之路Number数据类型详解
这是阿博的第15篇文章 之前阿博分享了Python的三种可变数据类型以及三种不可变数据类型.在这里阿博会详细解析Number数据类型. 注意:阿博的编译环境是Python3. Number数据类型 N ...
- [转载] Python中的set(集合)数据类型
参考链接: Python集合set add函数 Python中的set(集合)数据类型 Python中除了常见的Numbers(数字).String(字符串).List(列表).Tuple(元组).D ...
- python中集合的元素可以是任意数据类型_详解Python集合数据类型
本篇介绍Python集合数据类型.集合不同于列表和元组类型,集合存储的元素是无序且不能重复的,同数学中的集合一样,集合可以执行集合的并.交.差运算.通过本篇的学习,可以达成如下目标. ● 掌握集合数据 ...
- 【社区图书馆】《网络工程师的Python之路:网络运维自动化实战(第2版)》
文章目录 图书前言 图书简介 图书作者.简介 图书好评 图书目录 总结:本人选择此图书的意义 图书前言 光阴似箭,岁月如梭.转眼之间,距离本书最早的电子书出版已经过去了三年之久.承蒙广大读者的厚爱,电 ...
- 在python中print表示的数据类型是_【Python连载】那些必须掌握的Python数据类型
原标题:[Python连载]那些必须掌握的Python数据类型 经过近几年的发展,Python已成为了数据科学和机器学习的首选语言,许多人也因此开始走上自学python之路.从今天开始,本公众号将陆续 ...
- python之路6-迭代器、生成器、装饰器
1.迭代器&生成器 列表生成式 现在有个需求,列表[1,2,3,4,5,6,7,,8,9],要求把列表里的每个值加1,如何实现? 方法一: list = [1,2,3,4,5,6,7,8,9] ...
- python自学入门教程-Python自学入门基础教程-数据类型
在程序中,被运算的可分为常量(Literals)和变量(Variables) 1x = 10*2-5 2y = x+1 以上的变量都属于Python数据类型中的一部分. 在以上代码中,10.2.5都是 ...
最新文章
- pythonfile操作教程_Python基础教程之文件操作
- c语言学习题,C语言学习题目
- Python os和os.path的基础知识与常用操作
- sort and uniq
- rabbitnq 源码安装_linux下源码安装rabbitMq
- c++中调用Com组件的方法详解
- AbsListView.LayoutParams
- Android 常用权限
- XGBoost入门及实战
- PAT 乙级A1025 适合当算法入门练习题做
- 爬取链家房价信息存储并分析——mongodb存储和聚合查询
- Camera成像中的Demosaic
- java实习面试题整理
- js 树形结构数据 已知某一子节点 一次向上获取所有父节点
- 萨鲁曼的军队 Saruman‘s Army(挑战程序设计竞赛)
- 用计算机c语言输出你好,编写第一个C语言程序 - Hello World
- PUTTY中永久更改字体大小
- display:block含义
- python爬虫爬取4K图片实例
- 兰小欢《置身事内》读书笔记,含思维导图(PDF+epub+mobi+azw3分享)
热门文章
- Node.js格式化输出json文件
- 反编译那些事儿(四)—序列化问题
- SpringBoot整合Shiro(Java安全框架)案例(含源码)
- SO_LINGER选项
- 单片机输出脉冲的C语言简易程序,单片机简易程序, 电子琴 内附图 有说明...
- 带小手的文档怎么复制
- 2021-1-28Linux学习纪要
- qt设置文本背景透明_QT QWidget设置窗体透明度方法汇总
- linux中逻辑块大小为,Linux 文件系统相关的基本概念
- java 数据源xml 展示到界面_ZK开发关键知识点