一、定义

  用于存储一组无序的不重复的数据

二、特点

  1、 集合是无序的
  2、集合中的元素是不重复的, 唯一的
  3、集合中存储的数据必须是不可变的数据类型
  4、集合是可变的数据类型

三、语法

  set1 = {1, 2, 3} # int --> 不可变

  1、增加:
    add()
    update()   

    参数: 可迭代对象(容器)
    将可迭代对象中和集合中不重复的元素添加到集合中

1 # 添加操作 add
2 set5 = {1, 2, 3}
3 set5.add(4)
4 print(set5)  # {1, 2, 3, 4}
5 
6 # update()
7 set5.update({5, 6, 7, 8})
8 print(set5)  # {1, 2, 3, 4, 5, 6, 7, 8}

  2、删除:
    pop() 随机删除某个元素
    remove() 删除指定的元素
    clear() 清空集合
    del 集合名 删除整个集合

 1 set5.pop()  # 随机删除一个数据
 2 print(set5)
 3 
 4 set5.remove(100)  # 删除指定元素
 5 print(set5)  # {2, 3, 4, 5, 6, 7, 8}
 6 
 7 set5.clear()
 8 print(set5)  # set()
 9 
10 del set5
11 # print(set5)  # NameError: name 'set5' is not defined 

  3、集合的遍历: for in

四、运算

  1、交集: 取的公共部分 & intersection

1 set1 = {1, 2, 3, 4}
2 set2 = {3, 4, 5, 6}
3 print(set1 & set2)  # {3, 4}
4 print(set1.intersection(set2))

  2、并集: 取的是所有部分,不包括重复数据 | union

1 print(set1 | set2)  # {1, 2, 3, 4, 5, 6}
2 print(set1.union(set2))

  3、差集: 第一个集合有的,第二个集合没有的 - difference

1 print(set1 - set2)  # {1, 2}
2 print(set1.difference(set2))

  4、反交集: 跟交集反着 取的非公共部分 ^ symmetric_difference

1 print(set1 ^ set2)  # {1, 2, 5, 6}
2 print(set1.symmetric_difference(set2))

  5、子集:判断某个集合是不是另一个集合的子集 set1 < set2 issubset

1 print(set1 < set2)  # False
2 print(set1.issubset(set2))
3 
4 print({1, 2} < {1, 2, 3, 4})  # True
5 
6 print(set2 > set1)   # False
7 print(set2.issuperset(set1))
8 
9 print({3, 4, 5, 6} > {3, 6})  # True