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

发表评论

后才能评论