vba两个集合的差集_Python集合与字典本节知识⼤纲:
⼀、Set 集合的概念
1. set 集合的性质
set 集合是⼀组⽆序的且不能重复的集合,打印 set 集合时会⾃动消除重复的元素项;
set 集合⽤⼤括号表⽰;
set 集合存储的时候就是⽆序的,它不⽀持通过索引的⽅式进⾏访问;
set 集合在初始化时的顺序与打印出来时的顺序是不⼀样的;
set01 = {11,22,33,44,55}
2. set 集合存储的原理
set 集合在存储的时候,先把元素转为哈希值,哈希值是顺序存储的,哈希算法是⽤来判断两个对象是否是同⼀个;
3. 创键 set 集合的⽅法
(1)创建的时候,直接初始化
# 创建set集合
set01 = {11,22,33,44,55,66,77}
print(set01)
(2)创建空的 set 集合,然后往⾥加⼊值
创建空 set 不能想当然的使⽤set{},这样创建的是⼀个空字典,创建空 set 集合应该使⽤⽅法set()
# 创建空set
set02 = set()
set02.add("Tom")
set02.add("Bob")
set02.add("Jerry")
print(set02)
4.遍历 set 集合的⽅法
使⽤ for 循环遍历集合
# 遍历set集合
set01 = {11,22,33,44,55,66,77}
for i in set01:
print(i,end=" ")
⼆、set 集合常⽤⽅法
1. 不可以使⽤加法运算和乘法运算符
列表可以使⽤加法运算符将两个列表拼接在⼀起,set 集合不可以使⽤;列表可以使⽤乘法运算符将指定列表打印指定次数,set 集合不可以使⽤;
2. 赋值运算符
set01 = {11,22,33}
set02 = set01
3. 返回集合中元素的长度
set01 = {11,22,33}
print(len(set01))
4. 判断是否包含元素
# 判断是否包含元素
set01 = {11,22,33}
print("是否包含22:",22 in set01)
vba排序函数sort用法5. 排序和反转
直接的排序是不⽀持的,sort()、reverse()但是⽀持临时排序
# set⽀持临时排序
set01 = {11,2,-1,222,23}
print(sorted(set01))
6. 添加元素
使⽤ add()⽅法添加元素
set01 = {11,22,33}
set01.add(44)
print(set01)
7. 删除元素
删除元素有 discard、remove、pop ⽅法 discard 删除原先不存在的值,集合不发⽣变化⽽且也不会报错
# discard⽅法删除元素
set01 = {11,0,22,-22,99,100,33}
print("删除22前",set01)
set01.discard(22)
print("删除22后",set01)
set01.discard(122)
print("删除⼀个不存在的122",set01)
输出结果:
删除22前 {0, 33, 99, 100, -22, 11, 22}
删除22后 {0, 33, 99, 100, -22, 11}
删除⼀个不存在的122 {0, 33, 99, 100, -22, 11}
但是如果⽤remove⽅法,要删除的值如果不存在,那么程序便会报KeyError 错;使⽤pop⽅法删除,默认删除集合中第⼀个元素(按照hash值存储的)pop 函数的参数不能指定某⼀个要删除元素的具体的值。
8. 数值元素计算(max,min,sum)
set03 = {11,2,222,12,1,456,-2}
print(min(set03)) # 打印集合中的最⼩值
print(max(set03)) # 打印集合中的最⼤值
print(sum(set03)) # 打印集合中的数值元素的和
9. set 集合逻辑运算
交集、并集、差集、对等差集、是否⼦集、是否⽗集,两种表⽰⽅法任选⼀个即可;
# 逻辑运算
set01 = {11,22,33,44,55}
set02 = {44,55,66,77,88}
# 交集
print(set01 & set02)
print(set01.intersection(set02))
# 并集
print(set01 | set02)
print(set01.union(set02))
# 差集
print(set01 - set02)
print(set01.difference(set02))
# 对等差集
print(set01 ^ set02)
print(set01.symmetric_difference(set02))
print((set01-set02) | (set02-set01))
# 判断是否是⼦集
set01 = {11,22,33}
set02 = {11,22}
print(set01.issubset(set02))
print(set01 <= set02)
print(set01.issuperset(set02))
print(set01 >= set02)
10. 类型转换
set 集合可以转化为 list 列表、tuple 元组、str 字符串,可以直接通过类型转换来实现:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论