python学习--集合

集合的定义

集合这个概念我们并不陌生,在学生时代不免会有老师对全班同学喊集合,在数学学习中我们也可以学到集合。
集合具有互斥性和无序性,意思就是集合里每个元素都是不一样的,而且集合也是无序的。回想一下之前还学过哪个类型也是无序的呢?对了就是字典!

set1 = {8, 7, 4, 5, 6}  # 集合与字典一样都是用{}定义,但集合不存在键值和值成对出现。
print(set1)  # {4, 5, 6, 7, 8}

这里会有个疑问,为什么我定义的时候是8开头,而输出的时候却是从小到大的,集合不应该是无序的吗。其实这是因为python3版本在输出值较小的集合时会自动从小到大输出,而遇到大值的时候就不会了。

set1 = {9991, 9880, 12, 15}
print(set1)  # {9880, 12, 15, 9991}

如何定义空集合呢?要注意set1 = {}定义的是空字典而不是空集合。所以我们可以用set函数来构造空集合。

set1 = set()
print(type(set1))  # <class 'set'>

集合的运算

在数学中我们了解到集合具有交,并,差等集合运算。同样的在python里也存在这些运算。

set1 = {2, 3, 5, 7, 11}
set2 = {1, 3, 5, 7, 9}

1.集合的交集

我们使用&为集合的交集运算。
A&B交集:元素在集合A里,也在集合B里。

set3 = set1 & set2
print(set3)  # {3, 5, 7}

2.集合的并集

|为集合的并集运算。
A|B并集:元素在集合A里或者在集合B里。

set3 = set1 | set2
print(set3)  # {1, 2, 3, 5, 7, 9, 11}

3.集合的差集

-为集合的差集运算。
A-B差集:元素在集合A里但不在集合B里。

set3 = set1 - set2
print(set3)  # {2, 11}

集合的增删

1.集合的增加

集合可以通过add函数单个添加元素,和update函数批量添加元素。需要注意的是update函数必须用可迭代的对象(如:字符串,列表,集合等)来批量添加元素。当然已经存在的元素就不会再添加了。
add函数仅在集合中有哦。

set1 = {2, 3, 5}
set1.add(7)
print(set1)  # {2, 3, 5, 7}
set1.update({11, 13, 17})
print(set1)  # {17, 2, 3, 5, 7, 11, 13}

2.集合的删除

还是我们熟悉pop函数和remove函数,想想这两个函数在哪里也出现过?
诶对了列表的删除里也有他们!在集合中pop是随机删除,remove是指定元素删除。

set1 = {2, 3, 5, 7, 9}
print(set1.pop())  # 2
print(set1)  # {3, 5, 7, 9}
set1.remove(9)
print(set1)  # {3, 5, 7}

但是remove函数在删除不存在的元素时会出现报错,于是就有英雄诞生了,他就是小哪吒!啊不是,他就是discard函数!!

set1.remove(9)  # 报错
set1.discard(9)  # 不会报错

清空和删除集合,删除后该变量就不存在了后续在引用就会报错,只能重新定义。

set1.clear()  # 清空集合
print(set1)  # set()
del set1  # 删除集合

3.集合的改和查

集合是无序的,其不存在下标,没有修改方法,硬是要修改可以通过删除和添加的方法实现。显然没有下标他也不能进行值的查找。好在他是可迭代类型可以用for循环迭代得到他的全部元素。
可能有同学就疑问那集合还有什么用呢?
举个栗子

举个栗子:给一个列表删除其重复的元素。那么他就可以通过强制类型转换转为集合,再转成列表来实现去重。

集合的判断

判断集合是否有交集用isdisjoint函数,有交集则返回False。

set1 = {1, 3, 5, 7}
set2 = {1, 3, 5, 7, 9}
print(set1.isdisjoint(set2))  # False

判断集合是否是另一个集合的子集用issubset函数,是则返回True。

print(set1.issubset(set2))  # True

判断集合是否是另一个集合的超集用issuperset函数,是则返回True。简单来说就是是否包含于另一个集合。

print(set1.issuperset(set2))  # False

结束语

这次托更挺久了,主要是因为最近课业比较繁重,作业量比较多,不过还是挤时间更新了集合学习。
喜欢的话可以点赞转发加关注支持一下,后续会更新其他python学习内容。
ps:现在关注我,以后就是老粉啦!!!

下篇预告

之前经常讲到pop函数,remove函数,是不是有个疑惑什么是函数呢,期待下一篇。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值