python----集合
python----集合
集合的创建
空集合只能用set()创建,不能用{}创建,{}被字典占用。
# 方法一
set1 = {"集合","元素"}
print(type(set1)) # <class 'set'># 方法二
set2 = set()
print(type(set2)) # <class 'set'># 这个是空字典,而不是空集合
d = {}
print(type(d)) # <class 'dict'>
集合的运算
len()函数
函数:len(集合)
作用:返回集合中元素的个数
st = {1,2,3,4,5,6}
le = len(st)
print(le) # 6
关键字 in
关键字 :in
作用:判断元素是否在集合中
st = {"元素1","元素2","元素3","元素4"}
res = "元素1" in st
print(res) # True
res1 = "元素5" in st
print(res1) # False
并集
符号:|
作用:计算并集
返回值:返回两个集合中的所有元素
st1 = {1,2,3,4,5}
st2 = {2,4,6,8,9}
res = st1 | st2
print(res) # {1, 2, 3, 4, 5, 6, 8, 9}
交集
符号:&
作用:计算交集
返回值:返回两个集合中共有元素
st1 = {1,2,3,4,5}
st2 = {2,4,6,8,9}
res = st1 & st2
print(res) # {2, 4}
差集
符号:-
作用:计算差集
返回值:当A-B时,返回在集合A中但不出现在集合B中的所有元素
st1 = {1,2,3,4,5}
st2 = {2,4,6,8,9}
res = st1 - st2
print(res) # {1, 3, 5}
res2 = st2 - st1
print(res2) # {8, 9, 6}
对称差
符号:^
作用:计算对称差
返回值:返回两个集合交集以外的元素
st1 = {1,2,3,4,5}
st2 = {2,4,6,8,9}
res = st1 ^ st2
print(res) # {1, 3, 5, 6, 8, 9}
子集和超集
符号 | 含义 |
---|---|
A <= B | 检测A是否是B的子集 |
A < B | 检测A是否是B的真子集 |
A >= B | 检测A是否是B的超集 |
A > B | 检测A是否是B的真超集 |
A |= B | 将B的元素并入A中 |
st1 = {1,2,3,4,5,6}
st2 = {1,2,3}res = st2 <= st1
print(res) # Trueres1 = st2 < st1
print(res) # Trueres2 = st2 >= st1
print(res) # True
集合的方法
(1)、intersection()
功能: 计算两个集合交集
格式:集合1.intersection(集合2)
返回值:两个集合的交集
注意:成一个新的集合,两个集合的位置对结果没有影响
st1 = {1,2,3,4,5,6}
st2 = {2,4,6,8,10,12}
set1 = st1.intersection(st2)
print(set1) # {2, 4, 6}
set2 = st2.intersection(st1)
print(set2) # {2, 4, 6}
(2)、union()
功能:计算两个集合的并集
格式:集合1.intersection(集合2)
返回值:两个集合的并集
注意:成一个新的集合,两个集合的位置对结果没有影响
st1 = {1,2,3,4,5,6}
st2 = {2,4,6,8,10,12}
set1 = st1.union(st2)
print(set1) # {1, 2, 3, 4, 5, 6, 8, 10, 12}
set2 = st2.union(st1)
print(set2) # {1, 2, 3, 4, 5, 6, 8, 10, 12}
(3)、difference()
功能:计算两个集合的差集
格式:集合1.intersection(集合2)
返回值:两个集合的差集
注意:成一个新的集合,位置对结果有影响,表现为:集合1-集合2
st1 = {1,2,3,4,5,6}
st2 = {2,4,6,8,10,12}
set1 = st1.difference(st2)
print(set1) # {1, 3, 5}
set2 = st2.difference(st1)
print(set2) # {8, 10, 12}
(4)、symmetric_difference()
功能:计算两个集合的对称差集 (补集情况涵盖在其中)
格式:集合1.intersection(集合2)
返回值:两个集合的对称差集
注意:成一个新的集合,两个集合的位置对结果没有影响
st1 = {1,2,3,4,5,6}
st2 = {2,4,6,8,10,12}
set1 = st1.symmetric_difference(st2)
print(set1) # {1, 3, 5, 8, 10, 12}
set2 = st2.symmetric_difference(st1)
print(set2) # {1, 3, 5, 8, 10, 12}
(5)、issubset()
功能:判断是否是子集
格式:集合1.intersection(集合2)
返回值:False 或 True
注意:位置对结果有影响,表现为:检测集合1是否是集合2的子集
st1 = {1,2,3,4,5,6}
st2 = {1,2,3}
set1 = st1.issubset(st2)
print(set1) # False
set2 = st2.issubset(st1)
print(set2) # True
(6)、issuperset() 判断是否是父集
功能:判断是否是父集
格式:集合1.intersection(集合2)
返回值:False 或 True
注意:位置对结果有影响,表现为:检测集合1是否是集合2的父集
st1 = {1,2,3,4,5,6}
st2 = {1,2,3}
set1 = st1.issuperset(st2)
print(set1) # True
set2 = st2.issuperset(st1)
print(set2) # False
(7)、isdisjoint()
功能:检测两集合是否不相交
格式:集合1.intersection(集合2)
返回值:不相交 True 相交False
注意:两个集合的位置对结果没有影响
st1 = {1,2,3,4,5,6}
st2 = {2,4,6,}
# 相交
set1 = st1.isdisjoint(st2)
print(set1)
set2 = st2.isdisjoint(st1)
print(set2)st3 = {"hh",'hehe','haha'}
st4 = {"h",5,3}
# 不相交
set3 = st3.isdisjoint(st4)
print(set3) # True
(8)、add()
功能:向集合中添加数据
格式:集合.add(数据)
返回值:None
注意:直接将数据添加到原来集合中且位置随机
st = {"黄毛","灰猫"}
t = st.add("黑猫")
print(t) # None
print(st) # {'黄毛', '黑猫', '灰猫'}
(9)、update() 迭代着增加
功能:迭代着增加
格式:集合.update(序列)
返回值:None
注意:直接将序列中的元素迭代添加到原来集合中且位置随机
st = {"工人","学生","老师"}
t = st.update(["医生","护士"])
print(t) # None
print(st) # {'学生', '护士', '医生', '老师', '工人'}
st.update(("白领","程序员"))
print(st) # {'学生', '护士', '医生', '白领', '程序员', '老师', '工人'}
(10)、clear()
功能:清空集合
格式:集合.clear()
返回值:None
注意:集合中元素全部清空,原集合变为空集合
st = {"家长","学生","老师"}
t = st.clear()
print(t) # None
print(st) # set()
(11)、pop()
功能:随机删除集合中的一个数据
格式:集合.pop()
返回值:返回被删除的元素
注意:结果改变原集合,直接在原集合中删除数据
st = {"家长","学生","老师"}
t = st.pop()
print(t) # 学生
print(st) # {'老师', '家长'}
(12)、remove()
功能: 删除集合中指定的值(不存在则报错)
格式:集合.remove(指定元素)
返回值:None
注意:结果改变原集合,直接在原集合中删除数据,不存在报错
st = {"指定删除","没有报错"}
t = st.remove("指定删除")
print(t) # None
print(st) # {'没有报错'}st.remove("1") # 报错:KeyError: '1'
(13)、discard()
功能:删除集合中指定的值(不存在的不删除 推荐使用)
格式:集合.discard(指定元素)
返回值:None
注意:结果改变原集合,直接在原集合中删除数据,
st = {'学生', '护士', '医生', '白领', '程序员', '老师', '工人'}
t = st.discard("工人")
print(t) # None
print(st) # {'老师', '程序员', '白领', '护士', '学生', '医生'}t2 = st.discard("haha")
print(st) # {'老师', '程序员', '护士', '医生', '学生', '白领'}
冰冻集合
函数:frozenset()
作用:frozenset 可强转序列数据变为冰冻集合
注意:冰冻集合一旦创建,不能在进行任何修改,只能做交叉并补操作
# 定义有个空的冰冻集合
t1 = frozenset()
print(type(t1)) # <class 'frozenset'># 列表强转冰冻集合
ls = [1,2,3,4,5]
t2 = frozenset(ls)
print(t2) # frozenset({1, 2, 3, 4, 5})# 元组强转冰冻集合
tp = (1,2,3,4)
t3 = frozenset(tp)
print(t3) # frozenset({1, 2, 3, 4})# 字符串强转冰冻集合
s = "123456"
t4 = frozenset(s)
print(t4) # frozenset({'4', '2', '3', '6', '1', '5'})# 字典强转冰冻集合
dic = {"a":1,"b":2,"c":3}
t5 = frozenset(dic)
# 默认将键转为集合
print(t5) # frozenset({'a', 'b', 'c'})# 不能在进行任何修改
# t5.add("haha") # 报错:AttributeError: 'frozenset' object has no attribute 'add'
# t5.clear() # 报错:AttributeError: 'frozenset' object has no attribute 'clear'
集合的去重性
很多场景中需要去掉重复值,集合就一个比较简单的去重工具
ls = [1904040201,1904040202,1904040203,1904040201,1904040202]
# 要求去掉重复的学号
st = set(ls)
new_ls = list(st)
print(new_ls) # [1904040201, 1904040202, 1904040203]
python----集合相关推荐
- python集合(set)+常见方法+交叉并补
python集合(set)+常见方法+交叉并补 集合的定义 定义:由不同元素组成的集合,集合是一组无序排列 可hash值,可作为字典的key. 特性:集合的目的是将不同的值存放在一起,不同的集合间用来 ...
- Python集合之set()使用方法详解
set是一个无序且不重复的元素集合,它有可变集合(set())和不可变集合(frozenset)两种,可以对set()集合进行创建.添加.删除.交集.并集和差集的操作,非常实用,以下是具体用法: 一. ...
- excel调用python编程-使用python集合进行EXCEL数据分析
使用python集合进行EXCEL数据分析 标准库 Python真正精彩的方面之一是它具有非常丰富的模块标准库 ,无需安装第三方模块即可进行一些复杂的编程. 如果您在系统上有效安装了python,则可 ...
- python集合的并集、交集_Python 集合set()添加删除、交集、并集、集合操作详解
1.在Python中set是基本数据类型的一种集合类型,它有可变集合(set())和不可变集合(frozenset)两种.创建集合set.集合set添加.集合删除.交集.并集.差集的操作都是非常实用的 ...
- python空集_玩转Python集合,这一篇就够了!
原标题:玩转Python集合,这一篇就够了! 点上方蓝色" 菜鸟学Python",选" 星标"公众号 重磅干货,第一时间送到 选自DataCamp, 作者:Mi ...
- python集合运算_Python 集合set()添加删除、交集、并集、集合操作详解
在Python set是基本数据类型的一种集合类型,它有可变集合(set())和不可变集合(frozenset)两种.创建集合set.集合set添加.集合删除.交集.并集.差集的操作都是非常实用的方法 ...
- python集合的操作_Python集合操作方法详解
集合是无序的,天生不重复的数据组合,它的作用如下: 去重,即:把一个列表变成集合,就去重了 关系测试,即:测试两组集合的交集.并集和差集等 一.集合常用方法总结 二.定义 1.语法 >>& ...
- python中集合运算_入门 | 一文带你了解Python集合与基本的集合运算
原标题:入门 | 一文带你了解Python集合与基本的集合运算 选自DataCamp 作者:Michael Galarnyk 参与:Geek Ai.思源 一般我们熟悉 Python 中列表.元组及字典 ...
- python set集合_玩转Python集合,这一篇就够了!
点击 机器学习算法与Python学习 ,选择加星标 精彩内容不迷路 选自DataCamp, 作者:Michael Galarnyk 本文由机器之心编译 了解 Python 集合: 它们是什么,如何创建 ...
- python集合输出_Python集合操作方法详解
集合是无序的,天生不重复的数据组合,它的作用如下: 去重,即:把一个列表变成集合,就去重了 关系测试,即:测试两组集合的交集.并集和差集等 一.集合常用方法总结 二.定义 1.语法 >>& ...
最新文章
- 将数据库改为使用登录名密码登陆
- p沟道mos管导通条件_场效应管(MOS管)的判断与应用知识
- 舞台灯恒流芯片 无频闪无噪音 多路共阳 调光深度0.1% 方案分享
- python 使用pymysql执行sql语句,使用try防止出错
- 为qt程序添加ico图标
- 程序员应该坚持写博客
- 甲骨文裁员900多人,赔偿N+6,有人获赔100万,被裁也能致富?
- python爬取千图网_python 爬取 花瓣网图片,千图网图片
- 环境工程微生物学练习题
- 计算机读不到u盘如何修复u盘,U盘读不出来怎么办?U盘无法读取修复方法
- python语言的实验心得体会范文_关于实验的心得体会范文5篇
- 搜索量过低百度和谷歌竞价账户分别是怎么处理的
- 【已解决】terminate called after throwing an instance of ‘cv::Exception‘,已放弃 (核心已转储)
- 技术宅整大活,把ChatGPT「调教」成二次元老婆,惹现女友暴走,含泪删库
- Sentinel系列之热点限流
- i2c-tools调试工具
- 基于ANFIS的有色噪声抵消技术
- word排版快捷指令_十个绝对经典的word排版小技巧+WORD经典快捷100招
- AI虚拟人、跨境二维码,微信正在北美寻找更多“小伙伴”
- 火焰焰心matlab,[转载]酒精灯火焰的温度真的是外焰最高吗?
热门文章
- 计算机方面的英语杂志,计算机类有哪些EI检索的英文期刊
- Nature:13个维度,手把手教“研究er”如何做学术报告
- Topic ods_base_db not present in metadata after 60000 ms.
- [ICCV2021]Learning to Stylize Novel Views
- [机缘参悟-14]:哲学、唯物主义、唯心主义与空无主义
- CDR X6设计师的福利,3折特惠!
- java修饰词严格程度_Java修饰词的总结
- lopa分析_LOPA分析法之独立保护层浅析
- 计算机专业专科可以进的国企,专科毕业生想进国企?这三大专业不要错过,成功率高达60%...
- 【设计模式】之 Prototype 原型模式