6、Python集合的操作

Python集合的操作

1、什么是集合

  • 集合(set)是一个无序的不重复元素序列(只能加载不可变的数据类型)
  • 常用来对两个列表进行交并差的处理
  • 集合与列表一样,支持所有数据类型

2、集合与列表的区别

功能 列表 集合
顺序 有序 无序
内容 可重复 不可重复
功能 用于数据的使用 用于数据的交集并集差集的获取
索引 有索引 无索引
符号 [] [1,2,3] {} {1,2,3}

3、集合的创建

  • 通过set函数来创建集合,不能使用{}来创建空集合

    a_set() = set() –>空集合

    b_set() = set([1,2,3]) –>传入列表或元组

    c_set() = set(1,2,3) –>传入元素

    d_set() = () –> 错误的方法

4、集合的增删改

  • 集合的add函数

    • 功能:用于集合中添加一个元素,如果集合中已存在该元素则函数不执行

    • 用法:set.add(item)

      参数:item:要添加到集合中的元素

      返回值:无返回值

      In [1]: a_set = set()
      In [2]: a_set.add('david')
      In [3]: print(a_set)
      Out [1]: {'david'}
      
  • 集合的update函数

    • 功能:加入一个新的集合(或列表,元组),如新集合内的元素在元集合中存在则无视

    • 用法:set.update(iterable)

      参数:iterable:一个集合或列表或元组

      In [1]: a_set = set()
      In [2]: a_set.update([1,2,3])
      In [3]: print(a_set)
      Out [1]: {1,2,3}
      
  • 集合的remove函数

    • 功能:将集合中的某个元素删除,如元素不存在则报错

    • 用法:set.remove(item)

      参数:item:当前集合中的一个元素

      返回值:无返回值,直接作用于原集合

      In [1]: a_set = {1,2,3}
      In [2]: a_set.remove(3)
      In [3]: print(a_set)
      Out [1]: {1,2}
      
  • 集合的clear函数

    • 功能:清空当前集合中的所有元素

    • 用法:set.clear()

      参数:无

      返回值:无返回值,直接作用于原集合

      In [1]: a_set = {1,2,3}
      In [2]: a_set.clear()
      In [3]: print(a_set)
      Out [1]: set()
      
  • 用del删除集合

    In [1]: a_set = {1,2,3}
    In [2]: del a_set
    In [3]: print(a_set) --> #报错
    
  • 重要说明

    • 集合无法通过索引获取元素
    • 集合无获取元素的任何方法
    • 集合只是用来处理列表或元组的一种临时类型,他不适合存储与传输

5、集合的差集——difference函数

  • 什么是差集

    a,b两个集合,由所有属于a且不属于b的元素组成的集合,叫做a与b的差集

  • difference的功能

    返回集合的差集,即返回的集合元素包含在第一个集合中,但不包含在第二个集合(方法的参数)中

  • difference的用法

    用法:a_set.difference(b_set)

    参数:b_set:当前集合需要对比的集合

    返回值:返回原始集合于对比集合的差集,即a_set与b_set的差集

    In [1]: a_set = {'name', 'david', 'jason'}
    In [2]: b_set = {'eva', 'david', 'jay'}
    In [3]: a_diff = a_set.difference(b_set)
    In [4]: print(a_diff)
    Out [1]: {'name', 'jason'}
    

6、集合的交集——intersection函数

  • 什么是交集

    a,b两个集合分别拥有的相同的元素集,成为a与b的交集

  • intersection的功能

    返回两个或更多集合中都包含的元素,即交集

  • intersection的用法

    用法:a_intersection(b_set…)

    参数:b_set…:当前集合对比的1或多个集合

    返回值:返回原始集合与对比集合的交集

    In [1]: a_set = {'name', 'david', 'jason'}
    In [2]: b_set = {'eva', 'david', 'jay'}
    In [3]: a_inter= a_set.intersection(b_set)
    In [4]: print(a_inter)
    Out [1]: {'david'}
    

7、集合的并集——union函数

  • 什么是并集

    a,b两个集合中所有的元素(去掉重复)即为a与b的并集

  • union的功能

    返回多个集合的并集,即包含了所有集合的元素,重复的元素只会出现一次

  • union的用法

    用法:a_set.union(b_set…)

    参数:b_set…:与当前集合对比的1或多个集合

    返回值:返回原始集合与对比集合的并集

    In [1]: a_set = {'name', 'david', 'jason'}
    In [2]: b_set = {'eva', 'david', 'jay'}
    In [3]: un= a_set.union(b_set)
    In [4]: print(un)
    Out [1]: {'jason', 'jay', 'eva', 'name', 'david'}
    

7、集合的isdisjoint函数

  • isdisjoint的功能

    判断两个集合是否包含相同的元素,如果没有返回Ture,否则返回false

  • isdisjoint的用法

    用法:a_set.isdisjoint(b_set)

    参数:b_set:与当前集合用来判断的集合

    返回值:返回一个布尔值Ture或者False

    In [1]: a_set = {'name', 'david', 'jason'}
    In [2]: b_set = {'eva', 'david', 'jay'}
    In [3]: result = a_set.isdisjoint(b_set)
    In [4]: print(result)
    Out [1]: False
    

转载请注明来源