Python基础数据类型之集合
Python基础数据类型之集合
集合(set)是Python基本数据类型之一,它具有天生的去重能力,即集合中的元素不能重复。集合也是无序的,且集合中的元素必须是不可变类型。 一、如何创建一个集合
#1.用花括号{}将一堆没有映射关系的数据包裹起来,数据之间用逗号隔开就构成了集合,这里要和字典区别开,字典的元素有映射关系。
>>> set1 = {1,2,3,4}
>>> set1
{1, 2, 3, 4}
>>> type(set1)
<class 'set'>
>>>
#2.用set()函数将一个可迭代序列转换成集合
>>> set2 = set([1,1,3,3,4,4,4])
>>> set2
{1, 3, 4} # 集合会自动去除重复元素
>>> type(set2)
<class 'set'>
>>> set3 = set('Keys')
>>> set3
{'K', 'y', 'e', 's'} #从这里可以看出集合是无序的
>>>
二、访问集合
由于集合是无序的,所以不能用索引来访问,如果要访问集合里的元素,可以有下面的方法 #1.利用for循环遍历集合
>>> for i in set1:
... print(i)
...
1
2
3
4
>>>
#2.利用in和 not in判断一个元素是否在集合中
>>> 1 in set1
True
>>> 5 in set1
False
>>>
三、不可变集合
Python中有一个frozenset()函数,可以将集合“冻起来”,即将集合变成不可变集合
>>> set1 = frozenset(set1)
>>> set1.add(5)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'frozenset' object has no attribute 'add'
>>>
四、集合的方法
1.add()
向集合添加一个元素
>>> set1 = {1,2,3}
>>> set1
{1, 2, 3}
>>> set1.add(4)
>>> set1
{1, 2, 3, 4}
>>>
2.clear()
清空集合里的元素
>>> set1 = {1,2,3,4}
>>> set1
{1, 2, 3, 4}
>>> set1.clear()
>>> set1
set()
>>>
3.copy()
浅copy一个集合
>>> set1 = {1,2,3}
>>> set2 = set1.copy()
>>> set1
{1, 2, 3}
>>> set2
{1, 2, 3}
>>>
4.difference()
差集
>>> set1 = {1,2,3}
>>> set2 = {2,3,4}
>>> set1.difference(set2)
{1}
>>> set2.difference(set1)
{4}
>>>
5.difference_update()
差集更新:即将两个集合的差集赋给第一个集合
>>> set1 = {1,2,3}
>>> set2 = {2,3,4}
>>> set1.difference_update(set2)
>>> set1
{1}
>>>
6.discard()
删除集合中的元素,如果元素不存在,则什么也不做,如果元素存在,就删除它
>>> set1 = {1,2,3}
>>> set1.discard(1)
>>> set1
{2, 3}
>>> set1.discard(4)
>>> set1
{2, 3}
>>>
7.intersection()
取交集:即两个集合都有的元素
>>> set1 = {1,2,3}
>>> set2 = {2,3,4}
>>> set1.intersection(set2)
{2, 3}
>>> set2.intersection(set1)
{2, 3}
>>>
8.intersection_update()
交集更新:即将两个集合的交集赋给第一个集合
>>> set1 = {1,2,3}
>>> set2 = {2,3,4}
>>> set1.intersection_update(set2)
>>> set1
{2, 3}
>>>
9.isdisjoint()
判断两个集合是否有空交集,如果两个集合有一个空交集,返回 True,否则返回False
>>> set1 = {1,2,3}
>>> set2 = {2,3,4}
>>> set3 = {5,6}
>>> set1.isdisjoint(set2)
False
>>> set1.isdisjoint(set3)
True
>>>
10.issubset()
判断set1是不是set2的子集
>>> set1 = {1,2,3}
>>> set2 = {1,2,3,4}
>>> set3 = {2,3,4}
>>> set1.issubset(set2)
True
>>> set1.issubset(set3)
False
>>>
11.issuperset()
判断set1是不是set2的父集
>>> set1 = {1,2,3}
>>> set2 = {1,2,3,4}
>>> set3 = {2,3,4}
>>> set2.issuperset(set1)
True
>>> set2.issuperset(set2) # 一个集合即是其本身的父集,也是其本身的子集
True
>>>
12.pop()
随机弹出集合里的某个元素
>>> set1 = {1,2,3}
>>> set1.pop()
1
>>> set1.pop()
2
>>> set1
{3}
>>>
13.remove(x)
移除集合元素x
>>> set1 = {1,2,3}
>>> set1.remove(2)
>>> set1
{1, 3}
>>>
14.symmetric_difference()
对称差集:返回两个集合中相互都没有的元素组成的集合
>>> set1 = {1,2,3}
>>> set2 = {2,3,4}
>>> set1.symmetric_difference(set2)
{1, 4}
15.symmetric_difference_update()
对称差集更新:即将两个集合的对称差集的结果赋给第一个集合
>>> set1 = {1,2,3}
>>> set2 = {2,3,4}
>>> set1.symmetric_difference_update(set2)
>>> set1
{1, 4}
16.union()
取并集:返回两个集合中所有元素
>>> set1 = {1,2,3}
>>> set2 = {2,3,4}
>>> set2.difference(set1)
{4}
>>> set1.union(set2)
{1, 2, 3, 4}
>>> set2.union(set1)
{1, 2, 3, 4}
>>>
17.update()
更新集合
>>> set1 = {1,2,3}
>>> set1.update([4,5])
>>> set1
{1, 2, 3, 4, 5}
>>>
五、集合内容补充 除了用集合的方法来操作集合,还可以用操作符,其对应关系如下:
操作符 含义 使用方法 等价于 < 子集 set1<set2 issubset()
| 并集 set1|set2 union()
& 交集 set1&set2 intersection()
- 差集 set1-set2 difference()
^ 对称差集 set1^set2 symmetric_difference()
Python基础数据类型之集合的更多相关文章
- Python基础数据类型之集合以及其他和深浅copy
一.基础数据类型汇总补充 list 在循环一个列表时,最好不要删除列表中的元素,这样会使索引发生改变,从而报错(可以从后向前循环删除,这样不会改变未删元素的索引). 错误示范: lis = [,,, ...
- Python - 基础数据类型 set 集合
集合的简介 集合是一个无序.不重复的序列 它的基本用法包括成员检测和消除重复元素 集合对象也支持像 联合,交集,差集,对称差分等数学运算 集合中所有的元素放在 {} 中间,并用逗号分开 集合的栗子 这 ...
- Python基础数据类型-列表(list)和元组(tuple)和集合(set)
Python基础数据类型-列表(list)和元组(tuple)和集合(set) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的 ...
- python基础数据类型--集合(set)
python基础数据类型--集合(set) 集合是一个数学概念由一个或多个确定的元素所构成的整体叫做集合 集合中的三个特征 1.确定性(元素必须死可hash) 2.互异性(去重) 3.无序性(集合中的 ...
- 『Python基础-11』集合 (set)
# 『Python基础-11』集合 (set) 目录: 集合的基本知识 集合的创建 访问集合里的值 向集合set增加元素 移除集合中的元素 集合set的运算 1. 集合的基本知识 集合(set)是一个 ...
- Python 入门之Python基础数据类型及其方法
Python 入门之Python基础数据类型 1. 整型:int 用于计算,用于比较 (在赋值的时候先执行等号右边的内容) 1.1 整数的加 a = 10 b = 20 print(a + b) 结果 ...
- Python基础篇(set集合)
Python基础篇(set集合,深浅拷贝) set集合是Python的一个基本类型,一般是不常用.set中的元素是不重复的.无序的里边 的元素必须是可hash的比如int,str,tuple,bool ...
- 图解python | 基础数据类型
作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/56 本文地址:http://www.showmeai.tech/article-det ...
- python基本数据类型之集合
python基本数据类型之集合 集合是一种容器,用来存放不同元素. 集合有3大特点: 集合的元素必须是不可变类型(字符串.数字.元组): 集合中的元素不能重复: 集合是无序的. 在集合中直接存入lis ...
随机推荐
- 现在的Unix时间戳(Unix timestamp)
如何在不同编程语言中获取现在的Unix时间戳(Unix timestamp)? Java time JavaScript Math.round(new Date().getTime()/1000)ge ...
- 解决Git在更新项目时报凭证错误(Authentication failed)
报此错误,大概率原因是用户名和密码弄错了,我用的阿里云,在网上找了半天发现Git远程仓库用的用户名和密码不是阿里云登陆用的账户密码,必须另外设置: 链接:code.aliyun.com/profile ...
- IE兼容只读模式
表单input具有只读模式属性,一般来说,一般的浏览器都支持该属性,即readyonly,但IE不支持,只能寻找其兼容性. 第一种:unselectable='on' <input id=&qu ...
- spark常用参数
val conf = new SparkConf().setAppName("WordCount_groupBy").setMaster("local") // ...
- 关于搭建系统直播和Thinkphp的杂谈(持续更新)
Q:Access denied for user 'root'@'localhost' 错误 A:第一种:配置文件中把数据库的用户名密码再改一遍,把runtime里的文件删除 第二种:修改syste ...
- JavaScript数据格式验证探讨
1.需求 修改某个文本框数据,要求对修改后的格式做验证(必须是数字). 注:实际需求比上述复杂,为了说明问题,这里特意简化了需求(如:对修改后数据依赖条件的判断,数据入库等). 2.关于NaN的探讨( ...
- Jenkins怎么启动和停止服务
笔者没有把Jenkins配置到tomcat中,每次都是用命令行来启动Jenkins.但是遇到一个问题:Jenkins一直是开着的,想关闭也关闭不了.百度了一些资料,均不靠谱(必须吐槽一下百度).于是进 ...
- svn merge当主干修改后合并分支
例如版本r1的主干创建分支r2,在r2上修改后得到r3,r1之后也修改得到r4,现在合并分支到主干上: 如果r3的修改和r4有冲突会提示出现冲突,因此不用担心主干合并后会被分支操作覆盖,因为这并不是简 ...
- UVA1663 Purifying Machine (匈牙利算法,二分图最大匹配)
模版集合个数减少是因为匹配串集合中没被匹配过的一对串匹配了.所以就是找一个二分图最大匹配. 因为集合X和Y是不好分开的,但是可以直接跑,两个集合都会跑一遍,所以一个匹配会被算两次,返回的时候除以2就行 ...
- lg、ln的表示方法
c语言中 函数 log(x) 表示是以e为底的自然对数,即 ln(x) 函数 log10(x) 以10为底的对数,即 lg(x) 以其它数为底的对数用换底公式来表示 log(a)/log(b) 函数 ...