1、集合的定义

  • 由不同元素组成的集合,集合是一组无序排列 可hash值,可作为字典的key
  • 集合的目的是将不同的值存放在一起,不同的集合间用来做关系运算,无须纠结于集合中的单个值。
  • 不同元素组成
  • 无序
  • 集合中的元素必须是不可变类型

2、集合的使用

  • 声明集合 ```bash jihe={a,b,1,2}

注意: 与字典看上去类似,但是是不一样的。字典是 dict1 = {key:value,key2:value2,}需要key

  1. - 自动去重
  2. 注意,集合是有不同元素组成,所以即便里面的值重复了,也会去重
  3. ```bash
  4. set1 = {1, 2, 4, 3, 3, 4, 4, 3, 3, 2, 2, 2, 2, 1}
  5. print(set1)
  6. #结果
  7. {1, 2, 3, 4}
  • 添加元素 set.add() 方法 ```bash set1 = {1,3} set1.add(2) print(set1)

结果

{1,2,3}

  1. - 删除集合元素
  2. ```bash
  3. set.pop() 与 set.remove()
  4. # pop会从集合中随机删除一个数
  5. v = set1.pop()
  6. print(set1, "v = ", v)
  7. #结果
  8. {'s', 2, 1}
  9. # remove 可以传参数删除指定的值,但是要注意,如果传的值不存在会报错,慎用
  10. set1.remove(2)
  11. print(set1)
  12. #set.discard() 与remove()用法相同,但是如果元素不存在,不会报错
  13. set1 = {"s", 1, "234", 2}
  14. b = set1.discard("123123")
  15. print(b)
  16. set1.discard("s")
  17. print(set1)

3、集合的运算

  • 交集运算(intersection)

    1. stu_shuxue = {"陈司", "李大", "王二"}
    2. stu_yuwen = {"陈司", "王二"}
    3. #取交集
    4. print(stu_shuxue.intersection(stu_yuwen))
  • 并集,set.union()方法

    1. stu_shuxue = {"陈司", "李大", "王二"}
    2. stu_yuwen = {"陈司", "王二"}
    3. #取并集
    4. print(stu_shuxue.union(stu_yuwen))
  • 差集 set.difference()

    1. set1 = {"陈司","高","富","帅"}
    2. set2 = {"某人","高","富","丑"}
    3. #方法1
    4. print(set1.difference(set2))
    5. #结果
    6. {'帅', '陈司'}