博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
集合set-深入学习
阅读量:6544 次
发布时间:2019-06-24

本文共 4720 字,大约阅读时间需要 15 分钟。

集合set,无序,是不允许重复内容的,也就是不允许重复元素,如果有重复,会自动忽略,可接收可迭代类型 (一般用于需要判断和处理交集时候用到)

 

集合与字典的区别是,集合没有键只有值,字典是有键的字典是一对键值对

所以创建空集合不能用{}大括号,用大括号创建空集合默认会变成字典,如果需要创建空集合用set()

 

创建集合

1 #!/usr/bin/env python2 # -*- coding:utf-8 -*-3 #创建集合4 a = set()5 a = {11,22,33,44,55,55}6 print(a)7 #打印出 {33, 11, 44, 22, 55}
View Code 

集合的类库功能

 add(self*args, **kwargs)

"添加元素"(要添加的元素)

clear(self*args, **kwargs)

1 #!/usr/bin/env python2 # -*- coding:utf-8 -*-3 #创建一个集合4 se = {11,22,33,44}5 #向集合里添加元素6 se.add(55)7 print(se)8 #打印出 {33, 11, 44, 22, 55}
View Code

"清空元素"()

1 #!/usr/bin/env python2 # -*- coding:utf-8 -*-3 #创建一个集合4 se = {11,22,33,44}5 #清空集合里的元素6 se.clear()7 print(se)8 #打印出 空集合
View Code

difference(self*args, **kwargs)

"查找出一个集合里存在,另外一个集合不存在的元素"(格式:查找集合.difference(被判断的集合)

1 #!/usr/bin/env python2 # -*- coding:utf-8 -*-3 #创建二个集合4 a = {11,22,33,44}5 b = {11,55,88,44}6 #查找出a集合里存在,b集合不存在的元素7 c = a.difference(b)8 print(c)9 #打印出 {33, 22}
View Code

difference_update(self*args, **kwargs)

"从当前集合中删除和B中相同的元素"(b集合)

1 #!/usr/bin/env python2 # -*- coding:utf-8 -*-3 #创建二个集合4 a = {11,22,33,44,999}5 b = {11,55,88,44}6 #从a集合中删除和b集合中相同的元素7 a.difference_update(b)8 print(a)9 #打印出 {33, 22, 999}
View Code

 discard(self*args, **kwargs)

"移除指定元素,不存在不报错"(要移除的元素)

1 #!/usr/bin/env python2 # -*- coding:utf-8 -*-3 #创建一个集合4 a = {11,22,33,44,999}5 #移除指定元素,不存在不报错6 a.discard(999)7 print(a)8 #打印出 {33, 11, 44, 22}
View Code

intersection(self*args, **kwargs)

"交集,查找出a集合和b集合都存在的元素"(b集合

1 #!/usr/bin/env python2 # -*- coding:utf-8 -*-3 #创建二个集合4 a = {66,22,33,44,99}5 b = {44,55,66,77,33}6 #交集,查找出a集合和b集合都存在的元素7 c = a.intersection(b)8 print(c)9 #打印出 {33, 66, 44}
View Code

intersection_update(self*args, **kwargs)

"交集,查找出a集合和b集合都存在的元素,并重新更新到a集合"(b集合

1 #!/usr/bin/env python2 # -*- coding:utf-8 -*-3 #创建二个集合4 a = {66,22,33,44,99}5 b = {44,55,66,77,33}6 #交集,查找出a集合和b集合都存在的元素,并重新更新到a集合7 a.intersection_update(b)8 print(a)9 #打印出 {33, 66, 44}
View Code

isdisjoint(self*args, **kwargs)

"检查a集合和b集合是否有都存在的元素"(b集合

返回布尔值:如果没有都存在的,返回True,否则返回False

1 #!/usr/bin/env python2 # -*- coding:utf-8 -*-3 #创建二个集合4 a = {66,22,33,44,99}5 b = {44,55,66,77,33}6 #检查a集合和b集合是否有都存在的元素,7 c = a.isdisjoint(b)8 print(c)9 #打印出 False 说明有交集
View Code

 issubset(self*args, **kwargs)

"判断一个集合是否是另一个集合的子序列"(b集合)

是返回True   不是返回False

1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 #创建二个集合 4 a = {11,22,33,44} 5 b = {11,22} 6 #检查a集合是否是b集合的子序列, 7 c1 = a.issubset(b) 8 print(c1) 9 #检查b集合是否是a集合的子序列10 c2 = b.issubset(a)11 print(c2)12 #打印出13 #False 检查a集合是否是b集合的子序列,说明a集合不是b集合的子序列14 #True  检查b集合是否是a集合的子序列,说明b集合是a集合的子序列
View Code

issuperset(self*args, **kwargs)

"判断一个集合是否是另一个集合的父序列"(b集合)

是返回True   不是返回False

1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 #创建二个集合 4 a = {11,22,33,44} 5 b = {11,22} 6 #检查a集合是否是b集合的父序列, 7 c1 = a.issuperset(b) 8 print(c1) 9 #检查b集合是否是a集合的父序列10 c2 = b.issuperset(a)11 print(c2)12 #打印出13 #True  检查a集合是否是b集合的父序列,说明a集合是b集合的父序列14 #False 检查b集合是否是a集合的父序列,说明b集合不是a集合的父序列
View Code

pop(self*args, **kwargs)

"移除元素"()

一般默认移除第一个元素,只是集合有一套自己的元素排序规则,

1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 a = {44,55,66,77,88} 4 #打印出集合,可以看到集合里的元素排序情况 5 print(a) 6 #移除集合里的元素,默认移除元素里的第一个排序元素 7 b = a.pop() 8 #打印出被移除的元素 9 print(b)10 #打印出a集合被移除后剩下的所有元素11 print(a)12 #最后打印出13 #{88, 66, 44, 77, 55}14 #8815 #{66, 44, 77, 55}
View Code

remove(self*args, **kwargs)

"移除指定元素,不存在保错"(要移除的元素)

1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 a = {44,55,66,77,88} 4 #打印出a集合 5 print(a) 6 #移除a集合里指定的元素 7 a.remove(44) 8 #打印a集合移除指定元素后,剩下的所有元素 9 print(a)10 #最后输出11 #{88, 66, 44, 77, 55}12 #{88, 66, 77, 55}复制代码
View Code

 symmetric_difference(self*args, **kwargs)

"对称差集,就是将两个集合里没有交集的元素重新组合成一个新的集合"(b集合)

1 #!/usr/bin/env python2 # -*- coding:utf-8 -*-3 a = {44,55,66,77,88}4 b = {44,55,11,22,33}5 #对称差集,就是将两个集合里没有交集的元素重新组合成一个新的集合6 c =  a.symmetric_difference(b)7 print(c)8 #输出9 #{33, 66, 11, 77, 22, 88}
View Code

symmetric_difference_update(self*args, **kwargs)

"对称差集,并更新到a中,就是将两个集合里没有交集的元素重新组合更新给a集合"(b集合)

1 #!/usr/bin/env python2 # -*- coding:utf-8 -*-3 a = {44,55,66,77,88}4 b = {44,55,11,22,33}5 #对称差集,并更新到a中,就是将两个集合里没有交集的元素重新组合更新给a集合6 a.symmetric_difference_update(b)7 print(a)8 #输出9 #{33, 66, 11, 77, 22, 88}复制代码
View Code

union(self*args, **kwargs)

"并集,将两个集合合并成一个新的集合,元素有重复的会自动忽略"(b集合)

1 #!/usr/bin/env python2 # -*- coding:utf-8 -*-3 a = {44,55,66,77,88}4 b = {44,55,11,22,33}5 #并集,将两个集合合并成一个新的集合,元素有重复的会自动忽略只保留一次6 c = a.union(b)7 print(c)8 #输出9 #{33, 66, 11, 44, 77, 22, 55, 88}
View Code

update(self*args, **kwargs)

"更新,将b集合更新到a集合,相当于合并"(b集合)

1 #!/usr/bin/env python2 # -*- coding:utf-8 -*-3 a = {44,55,66,77,88}4 b = {44,55,11,22,33}5 #更新,将b集合更新到a集合,相当于合并6 a.update(b)7 print(a)8 #输出9 #{33, 66, 11, 44, 77, 22, 55, 88}
View Code

 

转载于:https://www.cnblogs.com/zjltt/p/6836445.html

你可能感兴趣的文章
Android 下拉刷新上拉载入 多种应用场景 超级大放送(上)
查看>>
Risc-V指令集
查看>>
Python进阶04 函数的参数对应
查看>>
C语言结构体的“继承”
查看>>
WebView之禁止调用第三方浏览器
查看>>
POJ 3468 A Simple Problem with Integers(线段树 区间更新)
查看>>
安装apr-1.6.3报错[cannot remove `libtoolT’: No such file or directory]解决方法
查看>>
C# 操作Excel,控制格式[转]
查看>>
iOS开发中一些常用的属性
查看>>
Git 使用教程
查看>>
spring--基于ioc的配置文件方式
查看>>
“小 U”- UI自动化测试平台 [自动化测试平台开发实战 - 基于 Spring Boot + Kotlin]...
查看>>
Vue使用过程中的可能会遇到的几个问题
查看>>
TIMO 后台管理系统 v2.0.1 发布,加入 jwt 身份验证组件,基于 Spring Boot
查看>>
Java 11 将至,不妨了解一下 Oracle JDK 之外的版本
查看>>
Log4j_学习_03_自己动手封装log工具
查看>>
Redis的各项功能解决了哪些问题?
查看>>
FastAdmin 极速后台管理框架 1.0.0.20190301_beta
查看>>
Selenium2 WebDriver 启动Chrome, Firefox, IE 浏览器、设置profile&加载插件
查看>>
Python标准库01 正则表达式(re包)
查看>>