📝前言:
这篇文章介绍一下python中的数据容器之一——集合:
1,集合的特点及定义
2,集合的常见通用方法(&
、|
、-
、difference
、difference_update
、add
、remove
和union
)
🎬个人简介:大学生一枚,努力学习ing
📋个人专栏:C语言入门基础以及python入门基础
🎀CSDN主页 愚润求学
🌄每日鸡汤:I can do all things
一,集合的特点及定义
1,集合可容纳多个不同数据类型的数据
2,集合是无序的
3,集合的元素不可以重复
4,集合可以修改
注意📢:集合不是序列,因为集合是无序的,所以集合也不能使用下标索引
集合的定义(使用{}
创建,元素之间用逗号隔开):
如下👇🏻
# 创建一个集合
set1 = {1,2,3,4,5}
# 创建一个空集合
set2 = {}
# 或者
set3 = set()
# 当然,集合也可以嵌套
# 创建一个嵌套着元组和集合的集合
nested_set = {1, 2, 3, {4, 5, 6}, (7, 8, 9)}
二,集合的常见操作方法
1,集合支持集合的数学运算
1,交集&
,即:两个集合中都共有的元素
2,并集|
, 即:两个集合中的所有元素,相同的元素要被删除
3,差集-
, 即:集合一有但是集合二没有的元素
(注意📢:上面的三个操作都不是对原集合进行修改,而是返回一个新的集合)
下面是集合定义的示例👇🏻
s1 = {1, 2, 3, 4}
s2 = {4,5,6}
# 集合的交集
s3 = s1 & s2
print(s3) # 输出 {4}
# 集合的并集
s4 = s1 | s2
print(s4) # 输出 {1, 2, 3, 4, 5, 6}
# 集合的差集
s5 = s1 - s2
print(s5) # 输出 {1, 2, 3}
扩展(另外两种求差集的方式):
1,其中差集还可以用difference
(效果和-
一样,两个原始集合都不被修改,返回一个新的集合)
语法:
集合1.difference(集合2)
如下👇🏻
s1 = {1,2,3,4}
s2 = {4,5,6}
s3 = s1.difference(s2)
print(s3) # 输出:{1, 2, 3}
2,difference_update
:对集合1进行修改的求差集
语法:
集合1.difference_update(集合2)
示例👇🏻
s1 = {1,2,3,4}
s2 = {4,5,6}
s1.difference_update(s2)
print(s1) # 输出:{1, 2, 3}
2,添加元素和移除元素
1,添加元素(add
)和移除元素(remove
)【都是直接对原始集合进行修改】
🔍语法:
# 添加元素:
集合.add(元素)
# 移除元素:
集合.remove(元素)
示例👇🏻
s1 = {1, 2, 3, 4, 5}
# 添加元素:
s1.add(6)
print(s1) # 结果:{1, 2, 3, 4, 5, 6}
# 移除元素:
s1.remove(1)
print(s1) # 结果:{2, 3, 4, 5, 6}
2,随机移除元素(pop
)
pop
的功能是:随机移除一个元素,并且返回这个元素,这个方法也是对原集合进行修改
(我们在学习列表的时候pop
是移除指定的下标的元素,但是,因为集合是无序的,所以pop
在集合中就变成了随机移除)
🔍语法:
集合.pop()
示例👇🏻
s1 = {2, 3, 8, 4, 5}
element = s1.pop()
print(s1) # 结果:{3, 4, 5, 8} 集合是无序的,顺序可能会随机变换
print(element) # 结果:2
3,清空集合(clear
),老朋友不介绍了
示例👇🏻
my_set = {1,2,3,4,5}
my_set.clear()
print(my_set) # 输出:set() 代表空集合
3,两个集合的合并
union
将两个结合合并
(注意📢:原集合不会被修改,返回一个合并好以后的新集合)
🔍语法:
集合1.union(集合2)
示例👇🏻
s1 = {1,2,3,4}
s2 = {4,5,6}
s3 = s1.union(s2)
print(s3) # 输出:{1, 2, 3, 4, 5, 6}
三,总结
因为集合是可修改的,所以大多数对单个集合的操作都是直接修改原始集合,但是大多数两个集合间的操作都是创建一个新的集合。
下面对刚刚提到的方法做个总结,以便日后查看👇🏻
🌈我的分享也就到此结束啦🌈
要是我的分享也能对你的学习起到帮助,那简直是太酷啦!
若有不足,还请大家多多指正,我们一起学习交流!
📢公主,王子:点赞👍→收藏⭐→关注🔍
感谢大家的观看和支持!祝大家都能得偿所愿,天天开心!!!
最近入住了腾讯云开发者社区,不但有代金券,还有很多好看的周边赠送
如果有想要加入的铁子赶紧点击链接加入链接一起加入吧