set的特性和基本用法——python3.6
- 特性
- 无序,不重复的数据组合,用{}表示,eg:{1,2,3,4,5,6}
- 用途
- 去重,把一个列表变成集合,就自动去重了
- 关系测试,测试两组数据之间的交集,差集,并集,对称差集,包含(子集和超集,相交和不相交)关系
- 基本语法
- set():创建一个空集合,用set()创建,不能直接用s = {},这是创建一个空字典
s = set()
print(type(s)) # =><class 'set'>- add:往集合中添加一个元素,如果添加的元素集合中已有,则集合没有任何变化,只能添加不可变数据
s = {,,,,}
s.add()
print(s) # =>{, , , , }
s.add()
print(s) # =>{, , , , , }- update:往集合中添加多个元素,自动去重
s = {,,,,}
s.update({,,,,})
print(s) # =>{, , , , , , , }- discard:删除指定元素,如果要删除的元素集合中不存在,do nothing
s = {,,,,}
s.discard()
print(s) # =>{, , , }- remove:删除指定元素,如果要删除的元素集合中不存在,报错
s = {,,,,}
s.remove()
print(s) # =>{, , , }
s.remove() # =>报错- pop:随机删除一个元素,无序的,当集合为空时,报错
s = {,}
s.pop()
print(s) # =>{}
s.pop()
s.pop() # =>报错- clear:清空
s = {,,,,}
s.clear()
print(s) # =>set()- copy:浅复制
s = {,,,,}
s1 = s.copy()
print(s1) # =>{,, , , }difference:差集,差集后的结果是一个新的集合
s1 = {,,,,}
s2 = {,,,,}
s3 = s1.difference(s2)
print(s3) # =>{, , }
s3 = s1-s2
print(s3) # =>{, , }
s4 = s2.difference(s1)
print(s4) # =>{, , }
s4 = s2-s1
print(s4) # =>{, , }difference_update:删除s1集合中含有s2集合中的元素,并返回给s1
s1 = {,,,,}
s2 = {,,,,}
s3 = s1.difference_update(s2)
print(s1) # =>{, , }intersection:交集,交集后的结果是一个新的集合
s1 = {,,,,}
s2 = {,,,,}
s3 = s1.intersection(s2)
print(s3) # =>{, }
s3 = s1 & s2
print(s3) # =>{, }
s3 = s2.intersection(s1)
print(s3) # =>{, }
s3 = s2 & s1
print(s3) # =>{, }intersection_update:将s1和s2的交集更新给s1
s1 = {,,,,}
s2 = {,,,,}
s1.intersection_update(s2)
print(s1) # =>{, }union:并集
s1 = {,,,,}
s2 = {,,,,}
s3 = s1.union(s2)
print(s3) # =>{, , , , , , , }
s3 = s1 | s2
print(s3) # =>{, , , , , , , }isdisjoint:判断两个集合是否有交集,如果没有,返回True,如果有,返回False
s1 = {,,,,}
s2 = {,,,,}
s3 = {,}
print(s1.isdisjoint(s2)) # => False
print(s1.isdisjoint(s3)) # =>Trueissubset:判断s2是否是s1的子集,如果是,则True,or,False
s1 = {,,,,}
s2 = {,}
print(s2.issubset(s1)) # =>True- issupper:判断s1是否是s2的超集
s1 = {,,,,}
s2 = {,}
print(s1.issuperset(s2)) # =>True- symmetric_difference:对称差集
s1 = {,,,,}
s2 = {,,,,}
s3 = s1.symmetric_difference(s2)
print(s3) # =>{, , , , , }
s3 = s2.symmetric_difference(s1)
print(s3) # =>{, , , , , }- symmetric_difference_updata:将对称差集更新给s1,或者s2
s1 = {,,,,}
s2 = {,,,,}
s1.symmetric_difference_update(s2)
print(s1) # =>{, , , , , }
s2.symmetric_difference_update(s1)
print(s2) # =>{, , , , }
- 其他用法:
- in ,not in 判断某元素是否在集合内
- == ,!=判断两个集合是否相等
set的特性和基本用法——python3.6的更多相关文章
- JavaScript高级 面向对象(11)--对象的动态特性-关联数组用法
说明(2017.4.2): 1. 对象的动态特性: (1)在js中,一个对象需要属性,就可以利用“对象名.属性 = 值”的方式为其添加,只要赋值成功,对象就新增这个属性. (2)对象属性的访问形式: ...
- dict的特性和基本语法——python3.6
特性 key:value结构,字典中的每一个元素,都是键值对 key必须可被hash,且必须为不可变数据类型,必须唯一 可存放任意多个值,可修改,可以不唯一 无序 查找速度快,因为hash可以把key ...
- subprocess.run()用法python3.7
def run(*popenargs, input=None, capture_output=False, timeout=None, check=False, **kwargs): "&q ...
- 枚举特性FlagsAttribute的用法
先看官方的解释:指示可以将枚举作为位域(即一组标志)处理. 看起来并不好理解,到底什么是作为位域处理? 其实说的通俗点就是用二进制的表示方式来处理数学集合概念中关于集合的或与非等运算方法. 有什么用 ...
- Python3 range() 函数用法
Python3 range() 函数用法 Python3 内置函数 Python3 range() 函数返回的是一个可迭代对象(类型是对象),而不是列表类型, 所以打印的时候不会打印列表. Pyth ...
- python学习2—python3特性与各种运算符
python学习2—python3特性与各种运算符 python3与python2相比具有的新特性 在python2中可以使用__future__模块调用python3的特性 print()函数必须带 ...
- 让你的python程序同时兼容python2和python3
python邮件列表里有人发表言论说「python3在10内都无法普及」.在我看来这样的观点有些过于悲观,python3和python2虽然不兼容,但他们之间差别并没很多人想像的那么大.你只需要对自己 ...
- (转载)C# 枚举 FlagsAttribute用法
这是读过几篇文章后发现整理的最完整的一篇文章 转载地址:枚举特性FlagsAttribute的用法 先看官方的解释:指示可以将枚举作为位域(即一组标志)处理. 看起来并不好理解,到底什么是作为位域处理 ...
- C# 当中 LINQ 的常规用法(Lambda 方式)
仅以本篇博文记录 LINQ 相关操作的基本知识,原型参考自 MSDN 相关知识,中间加以自己的理解与 DEMO. 1. IEnuemrable<T>.Select() Select 方法比 ...
随机推荐
- display:inline-block间隙产生的原因以及解决方案
display-inline-block是让元素在一行显示,但是这些元素在html里面是上下行排列的,所以中间有换行符,于是并排显示就有了换行符带来的空隙.那么如何解决呢? 方案一:将html标签要d ...
- JavaScript中三种字符串连接方式及其性能比较
参考地址: https://www.cnblogs.com/programs/p/5554742.html 工作中经常会碰到要把2个或多个字符串连接成一个字符串的问题,在JS中处理这类问题一般有三种方 ...
- 使用github进行代码托管
---恢复内容开始--- 记录下使用github进行个人代码托管,github是公共的代码托管库,可以免费使用,由于是公共的所以大家都可以查看,如果是隐私重要的文件代码可以选择付费变为私有库 1.注册 ...
- MovieReview—A dog's purpose(一只狗的使命)
Be Here Now A dog in the movie was reinc ...
- UVALive 5031 Graph and Queries (Treap)
删除边的操作不容易实现,那么就先离线然后逆序来做. 逆序就变成了合并,用并存集判断连通,用Treap树来维护一个连通分量里的名次. Treap = Tree + Heap.用一个随机的优先级来平衡搜索 ...
- Android(java)学习笔记124:利用Service在后台播放背景音乐
1. 在android应用程序里,有一种没有UI的类(android.app.Service)——Service.简单来说,Service是一个 background process(背景程序),通过 ...
- Win10激活方法(企业版)
Win10激活 注意:以管理员身份运行,需要电脑有网(亲测激活企业版没问题) 然后一条一条复制执行 slmgr /ipk NPPR9-FWDCX-D2C8J-H872K-2YT43 slmgr /sk ...
- wine卸载
Wine手动卸载,出现殘留,导致安装其他软件也不成功. 错误如下: 正在读取软件包列表... 完成正在分析软件包的依赖关系树 正在读取状态信息... 完成 您也许需要运行“ap ...
- 【转】JavaScript 节点操作 以及DOMDocument属性和方法
最近发现DOMDocument对象很重要,还有XMLHTTP也很重要 注意大小写一定不能弄错. 属性: 1Attributes 存储节点的属性列表(只读) 2childNodes 存储节点的子节点列表 ...
- 【dp】石子归并
玄学NPC 题目描述 有一堆石头质量分别为W1,W2,…,Wn.(Wi≤10000),将石头合并为两堆,使两堆质量的差最小. 输入 输入第一行只有一个整数n(1≤n≤50),表示有n堆石子.接下去的n ...