python-集合
集合
集合是一个无序的,不重复的数据组合。
它的主要作用如下:
- 去重,取掉出现重复的值,把一个列表变成集合,就自动去重了。
- 用于关系测试,测试两组数据之前的交集、差集、并集,对等差集等关系。
数字运算常用操作(不能针对集合的值为字符串)
list01 = set([1,4,6,7,22,9])
list02 = set([2,11,6,9,88,18])
list03 = set([1,4,6])
list04 = set([1,5,0,8])
print(type(list01))
print(list01,list02)
print("--------------------------")
交集,两个集合中重叠的值
print("-------------------------交集")
print(list01.intersection(list02),"\n")
结果:{9, 6}
并集,出去重叠的值
print("-------------------------并集")
print(list01.union(list02),"\n")
结果:{1, 2, 4, 6, 7, 9, 11,
18, 22, 88}
差集,在list01中有的,list02中没有的
print("--------------------------差集")
print(list01.difference(list02),"\n")
结果:{1, 4, 22, 7}
对称差集,去掉两边重复出现的数字,打印两边之间不重复的数字(不打印出现重复的数字)
print("--------------------------对称差集")
print(list01.symmetric_difference(list02),"\n")
结果:{1, 2, 4, 22, 7, 88, 11,
18}
子集,list03中的值,在list01中都存在
print("-------------------------子集")
print(list03.issubset(list01),"\n")
结果:True
父集,在list01中包含list03中的值
print("------------------------父集")
print(list01.issuperset(list03),"\n")
结果: True
测试两个集合不是交集,如果不存在交集为真,存在交集为假
print("---------------------------判断是否不是交集")
print(list03.isdisjoint(list04))
结果:False
集合的常用操作
print("########################################\n\n\n\n\n")
交集
print(list01 & list02,"\n")
结果:{9, 6}
并集
print(list01 | list02,"\n")
结果:{1, 2, 4, 6, 7, 9, 11,
18, 22, 88}
差集,在list01中不带list02
print(list01 - list02, "\n")
结果:{1, 4, 22, 7}
对称差集
print(list01 ^ list02)
结果:
{1, 2, 4, 22, 7, 88, 11, 18}
集合的基本操作
集合一次添加一个值
list01.add(999)
print(list01)
结果:{1, 4, 6, 7, 9, 999, 22}
集合一次添加多个值
list01.update([1999,19990,9998])
print(list01)
结果:{1, 4, 19990, 6, 7, 9,
999, 9998, 1999, 22}
删除
print(list01.remove(1))
print(list01)
print(list01.discard(1))
print(list01)
结果:None
{4, 19990, 6, 7, 9,
999, 9998, 1999, 22}
# remove与discard的区别是,当删除的值不存在时,remove选项的结果会报错,而discard的结果会返回none

浙公网安备 33010602011771号