Python标准数据类型之集合(Set)详解

鳄鱼君

发表文章数:642

Vieu四代商业主题

高扩展、安全、稳定、响应式布局多功能模板。

¥69 现在购买
首页 » Python » Python标准数据类型之集合(Set)详解

Python中的Set(集合)

集合(set)是由一个或数个形态各异的大小整体组成的,构成集合的事物或对象称作元素或是成员。基本功能是进行成员关系测试和删除重复元素。它和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。创建格式:

set1={"acsa","erd","e1yu"}   #创建一个集合
print(set1)   # 输出集合,重复的元素被自动去掉
set1=set({1,2,3,45,6,'www.e1yu.com','鳄鱼教程'}) #使用set()函数
set1=set([1,2,3,45,6,'www.e1yu.com','鳄鱼教程']}) #set()接受一个参数,所以我们可以用[]包裹起来

Python中集合的作用

一般情况下集合有以下作用:

  • 去重,把一个list变成集合Set,就自动去重

  • 关系测试,测试两组数据之间的交集、差集、并集等关系

Python中的内置函数方法

同字典一样,集合也有一些常用的内置函数,如果你遇到熟悉的函数,没错就是你知道的用法:

方法 描述
clear() 移除集合中的所有元素
add() 为集合添加元素
pop() 随机移除元素
remove() 移除指定元素
copy() 拷贝一个集合
difference() 返回多个集合的差集
difference_update() 移除集合中的元素,该元素在指定的集合也存在。
discard() 删除集合中指定的元素
intersection() 返回集合的交集
intersection_update() 返回集合的交集。
union() 返回两个集合的并集
update() 返回自身与其他集合的并集更新集合
isdisjoint() 判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。
issubset() 判断指定集合是否为该方法参数集合的子集。
issuperset() 判断该方法的参数集合是否为指定集合的子集
symmetric_difference() 返回两个集合中不重复的元素集合。
symmetric_difference_update() 移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。

Python有关集合的案例

我们对照以上的部分函数分别进行演示说明,确保你能够正确理解函数的用法。clear()和copy()函数比较简单,深入了解copy()函数可参考:深拷贝和浅拷贝的详细介绍

add():为集合添加元素

set1=set({1,2,3,45,6,'www.e1yu.com','鳄鱼教程'}) #创建一个集合
print(set1)
set1.add('Python小白入门') #往集合中添加一个元素
print(set1)

remove():移除指定元素

set1=set({1,2,3,45,6,'www.e1yu.com','鳄鱼教程'}) #创建一个集合
set1.remove(2) # 移除指定元素
print(set1)

pop():随机移除元素

set1=set({1,2,3,45,6,'www.e1yu.com','鳄鱼教程'}) #创建一个集合
set1.pop() # 随机移除元素
print(set1)

update():返回自身与其他集合的并集更新集合

set1=set( {1,2,3,45,6,'www.e1yu.com','鳄鱼教程'} ) #创建一个集合
set2=set( [1,2,3,'Python入门教程','hello-world'] ) #创建一个集合
set1.update(set2) # 将set2添加到set1中,返回两者的并集
print(set1)

intersection():返回两个集合的交集

set1= {1,2,3,45,6,'www.e1yu.com','鳄鱼教程'}  #创建一个集合
set2= {1,2,3,'Python入门教程','hello-world'}  #创建一个集合
set3=set1.intersection(set2) # 返回两者的交集
print(set3)
print(set1 &  set2) #同样的效果

union():返回两个集合的并集

set1= {1,2,3,45,6,'www.e1yu.com','鳄鱼教程'}  #创建一个集合
set2= {1,2,3,'Python入门教程','hello-world'}  #创建一个集合
set3=set1.union(set2) # 返回两者的并集
print(set3)
print(set1 |  set2) #同样的效果

difference():返回多个集合的差集

set1= {1,2,3,45,6,'www.e1yu.com','鳄鱼教程'}  #创建一个集合
set2= {1,2,3,'Python入门教程','hello-world'}  #创建一个集合
set3=set1.difference(set2) # 返回两者的差集
print(set3)
print(set1 - set2) #集合set1减去set2 ,返回的是set1有,set2中没有的字符串
print(set2-set1) #返回的是set2有,set1没有的字符串
print(set1 ^ set2)  #set1 和 set2 中不同时存在的元素,非交集

symmetric_difference():返回两个集合中不重复的元素集合,非交集

set1= {1,2,3,45,6,'www.e1yu.com','鳄鱼教程'}  #创建一个集合
set2= {1,2,3,'Python入门教程','hello-world'}  #创建一个集合
set3=set1.symmetric_difference(set2) 
print(set3) #返回非交集,对称差集,就是去掉交集之外的集合

isdisjoint():判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。

set1= {1,2,3,45,6,'www.e1yu.com','鳄鱼教程'}  #创建一个集合
set2= {1,2,3,'Python入门教程','hello-world'}  #创建一个集合
print(set1.isdisjoint(set2)) ##判断两个集合是否有交集,存在返回False,不存在True

issubset():判断指定集合是否为该方法参数集合的子集。

set1= {1,2,3,45,6,'www.e1yu.com','鳄鱼教程'}  #创建一个集合
set2= {1,2,3,'Python入门教程','hello-world'}  #创建一个集合
print(set1.issubset(set2))  #判断set1是否是set2的子集 返回False

issuperset():判断该方法的参数集合是否为指定集合的子集

set1= {1,2,3,45,6,'www.e1yu.com','鳄鱼教程'}  #创建一个集合
set2= {1,2,3,'Python入门教程','hello-world'}  #创建一个集合
print(set1.issuperset(set2))  #判断set1是否是set2的父集 返回False

未经允许不得转载:作者:鳄鱼君, 转载或复制请以 超链接形式 并注明出处 鳄鱼君
原文地址:《Python标准数据类型之集合(Set)详解》 发布于2019-12-05

分享到:
赞(1) 赏杯咖啡

评论 抢沙发

2 + 4 =


文章对你有帮助可赏作者一杯咖啡

支付宝扫一扫打赏

微信扫一扫打赏

Vieu4.6主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。
切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录
切换登录

注册