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

posted @ 2018-06-06 13:52  jamie86  阅读(128)  评论(0)    收藏  举报