Python——集合

主要功能是对比列表中的信息,进行关系测试。

特点:
1. 去重

2. 无序

3. 没有修改功能,只能删除后再添加

4. 公共功能除了len和for循环其他不可使用

5. 不能作为字典的key使用

6. 列表,字典,集合不能作为集合嵌套

7. 表示空位set()

8. 集合内,数字1 = True ,0 = False 并且当做重复内容去掉。

 

以{}的形式出现,类型为set

1
2
3
4
5
list_1 = [1,2,3,5,3,4,2,33,1#创建列表
list_1 = set(list_1)            #关键字转换成集合
print(list_1,type(list_1))      #输出集合,并直接进行去重。
 
{1, 2, 3, 4, 5, 33} <class 'set'#以大括号的形式出现,数据类型为set

交集:

1
2
3
4
5
list_1 = set([1,2,3,5,3,4,2,33,1])
list_2 = set([2,2,4,5,6,7,7,8])
print(list_1.intersection(list_2)) #交集,就是将两个集合中的重复项显示出来。
 
{2, 4, 5}

交集缩写:

1
2
3
4
5
list_1 = set([1,2,3,5,3,4,2,33,1])
list_2 = set([2,2,4,5,6,7,7,8])
print(list_1 & list_2) #交集缩写
 
{2, 4, 5}

 并集:

1
2
3
4
5
list_1 = set([1,2,3,5,3,4,2,33,1])
list_2 = set([2,2,4,5,6,7,7,8])
print(list_1.union(list_2)) #并集,就是将两个列表中的重复选项去掉合并在一起。
 
{1, 2, 3, 4, 5, 33, 6, 7, 8}

并集缩写。

1
2
3
4
5
list_1 = set([1,2,3,5,3,4,2,33,1])
list_2 = set([2,2,4,5,6,7,7,8])
print(list_1 | list_2) #并集缩写
 
{1, 2, 3, 4, 5, 33, 6, 7, 8}

差集,就是1里面有而2里面没有的数据。

1
2
3
4
5
list_1 = set([1,2,3,5,3,4,2,33,1])
list_2 = set([2,2,4,5,6,7,7,8])
print(list_1.difference(list_2)) #差集
 
{1, 3, 33}

差集缩写:

1
2
3
4
5
list_1 = set([1,2,3,5,3,4,2,33,1])
list_2 = set([2,2,4,5,6,7,7,8])
print(list_1 - list_2) #差集缩写
 
{1, 3, 33}

子集,就是判断列表1中是不是包含列表3的全部数据。

1
2
3
4
5
list_1 = set([1,2,3,5,3,4,2,33,1])
list_3 = set([1,2,3])
print(list_3.issubset(list_1)) #子集
 
True    #返回false或True

父集,就是判断列表3中全部内容是不是在列表1中都有。

1
2
3
4
5
list_1 = set([1,2,3,5,3,4,2,33,1])
list_3 = set([1,2,3])
print(list_1.issuperset(list_3)) #父集
 
True    #返回false或True

对称差集,就是将两个列表中都有的数字去掉,然后合并在一起。

1
2
3
4
5
6
list_1 = set([1,2,3,5,3,4,2,33,1])
list_2 = set([1,2,3,88])
print(list_1.symmetric_difference(list_2)) #对称差集
print(list_1 ^ list_2) #对称差集缩写
 
{33, 4, 5, 88}

判断交集,就是判断两个列表中是否有相同信息。

1
2
3
4
5
list_1 = set([1,2,3,5,3,4,2,33,1])
list_2 = set([1,2,3,88])
print(list_1.isdisjoint(list_2))
 
False  #如果有交集就显示False,如果没有就显示True

添加:

1
2
3
4
5
6
7
8
9
list_1 = set([1,2,3,5,3,4,2,33,1])
list_1.add(999) #添加
print(list_1)
list_1.update([444,333,222]) #添加多项
print(list_1)
 
 
{1, 2, 3, 4, 5, 33, 999}
{1, 2, 3, 4, 5, 33, 999, 333, 444, 222}

删除:

1
2
3
list_1 = set([1,2,3,5,3,4,2,333,1])
list_1.remove(333) #删除
print(list_1)

随机删除一个:

1
2
3
4
list_1 = set([1,2,3,5,4,333])
print(list_1.pop())
 
1   #返回删除的值

删除,如果不在集合内将不报错。

1
2
list_1 = set([1,2,3,5,4,333])
list_1.discard(222)          #集合内没有也不会报错。

显示去重以后的长度:

1
2
3
4
5
list_1 = set([1,2,3,5,4,333])
print(len(list_1))
 
 
6

判断数字是否在合集中。

1
2
3
4
list_1 = set([1,2,3,5,4,333])
print(6 in list_1)
 
False   #如果没有将显示False,如果有将显示True

盘算数字是否不在这个集合中。

1
2
3
4
list_1 = set([1,2,3,5,4,333])
print(6 not in  list_1)
 
True  #如果不在将显示True,如果在将显示False

 复制:

1
2
3
4
5
6
7
list_1 = set([1,2,3,5,4,333])
list_2 = list_1.copy()    #复制到list_2中。
print(list_2)
print(type(list_2))
 
{1, 2, 3, 4, 5, 333}
<class 'set'>

 

posted @   新兵蛋Z  阅读(338)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示