Python3之set集合

  1 # Author:Allister.Liu
  2 
  3 """
  4  set 集合是一个无序且不重复的数据组合
  5     作用:
  6         1、去重;
  7         2、关系测试,测试两组数据的交集,差集,并集等关系
  8 """
  9 
 10 
 11 list_1 = [1, 3, 4, 8, 6, 4, 6, 9]
 12 list_1 = set(list_1)
 13 
 14 list_2 = set([2, 5, 7, 8, 22, 45, 3])
 15 list_3 = set([1, 4, 6, 9])
 16 list_4 = set([2, 5, 7])
 17 
 18 
 19 # 结果:{1, 3, 4, 6, 8, 9} <class 'set'> 已去重
 20 # print(list_1, type(list_1))
 21 
 22 
 23 print("list_1:", list_1, "list_2:", list_2, "list_3:", list_3, "list_4:", list_4)
 24 print("性感的分割线".center(60, "~"))
 25 # 交集
 26 print("交集", list_1.intersection(list_2))
 27 # 并集 两个合成一块
 28 print("并集", list_1.union(list_2))
 29 # 差集 list_1有的list_2没有的
 30 print("差集", list_1.difference(list_2))
 31 
 32 
 33 # 子集 list_1是否包含list_3
 34 print("子集", list_3.issubset(list_1))
 35 # 父集
 36 print("父集", list_1.issuperset(list_3))
 37 
 38 # 对称差集 两个互相没有的  也就是去掉交集
 39 print("对称差集", list_1.symmetric_difference(list_2))
 40 
 41 # Return True if two sets have a null intersection. 只要有一个交集就返回False,反之为True
 42 print(list_3.isdisjoint(list_4))
 43 
 44 
 45 """
 46 使用运算符号
 47 """
 48 print("性感的分割线,下面使用运算符号".center(60, "~"))
 49 # 并集
 50 print("并集:", list_1 | list_2)
 51 # 交集
 52 print("交集", list_1 & list_2)
 53 # 差集 list_1有的list_2没有的
 54 print("", list_1 - list_2)
 55 # 对称差集
 56 print("", list_1 ^ list_2)
 57 # 子集 list_1是否包含list_3
 58 print(list_3 <= list_1)
 59 # 父集
 60 print(list_1 >= list_3)
 61 
 62 
 63 """
 64 集合的操作
 65     添加:
 66        add(x):添加一个x
 67        update([x1, x2, x3, ...]): 添加多个x1, x2, x3...
 68     
 69     删除:
 70         s.remove(x) : 删除指定元素x,如果x不存在s集合中,则会报错
 71         s.pop() : 删除任意一个并返回被删除的成员
 72         s.discard(x) : 删除指定成员x,如果x存在s集合中,则删除,不存在,什么都不做,也不会报错
 73         
 74     验证是否存在:
 75         x in s : x是否是s集合的成员
 76         x not in s : x是否不是s集合的成员
 77 """
 78 print("集合的操作".center(50, "^"))
 79 # 新增
 80 list_1.add(999)
 81 list_1.update([888, 777, 666])
 82 
 83 # 删除
 84 list_1.remove(999)
 85 
 86 # 删除任意一个并返回被删除的成员
 87 # print(list_1.pop())
 88 # print(list_1.pop())
 89 # print(list_1.pop())
 90 
 91 # 删除指定成员,如果存在则删除,不存在什么都不干,不会报错
 92 list_1.discard(666)
 93 print(list_1)
 94 
 95 # 判断某个元素是否存在集合中
 96 print(3 in list_1)
 97 # 判断某个元素是否不存在集合中
 98 print(333 not in list_1)
 99 
100 # 返回list_1的一份浅复制
101 list_1.copy()

 

list_1: {1, 3, 4, 6, 8, 9} list_2: {2, 3, 5, 7, 8, 45, 22} list_3: {1, 4, 6, 9} list_4: {2, 5, 7}
~~~~~~~~~~~~~~~~~~~~~~~~~~~性感的分割线~~~~~~~~~~~~~~~~~~~~~~~~~~~
交集 {8, 3}
并集 {1, 2, 3, 4, 5, 6, 7, 8, 9, 45, 22}
差集 {1, 4, 6, 9}
子集 True
父集 True
对称差集 {1, 2, 4, 5, 6, 7, 9, 22, 45}
True
~~~~~~~~~~~~~~~~~~~~~~性感的分割线,下面使用运算符号~~~~~~~~~~~~~~~~~~~~~~~
并集: {1, 2, 3, 4, 5, 6, 7, 8, 9, 45, 22}
交集 {8, 3}
 {1, 4, 6, 9}
 {1, 2, 4, 5, 6, 7, 9, 22, 45}
True
True
^^^^^^^^^^^^^^^^^^^^^^集合的操作^^^^^^^^^^^^^^^^^^^^^^^
{1, 3, 4, 6, 8, 9, 777, 888}
True
True
执行结果

 

posted @ 2018-01-13 16:17  Allister  阅读(203)  评论(0编辑  收藏  举报