python中集合set的使用

集set

  • 约定
    set翻译为集合
    collection翻译为集合类型,是一个大概念
  • set
    是可变的、无序的、不重复的元素集合

set定义、初始化

set()->new empty set object
set(iterable)->new set object

在这里插入图片描述
set中的元素

-set中的元素要求必须可以hash
list、set都不能hash
元素不可以使用索引,因为set是无序的
set可以迭代

set增加

  • add(elem)
    增加一个元素到set中
    如果元素存在,什么都不做
    -update(*others)
    合并其他元素到set集合中来
    参数others必须是可迭代对象
    就地修改
    在这里插入图片描述

set删除

  • remove(elem)
    从set中移除一个元素
    元素不存在,抛出KeyError异常

  • discard(elem)
    从set中移除一个元素
    元素不存在,什么都不做

  • pop()->item
    移除并返回任意的元素,删除任意一个元素
    空集返回keyError异常

  • clear()
    移除所有元素
    在这里插入图片描述

set修改、查询

  • 修改
    要么修改,要么加入新元素
  • 查询
    非线性结构,无法查询
  • 遍历
    可迭代所有元素
  • 成员运算符

in 安定 not in 判断元素是否在set中

在这里插入图片描述
set和线性结构

  • 线性结构的查询时间复杂度是O(n),随着规模的增大而耗时
  • set、dict等结构,内部使用hash值作为key,时间复杂度可以左到O(1),查询时间和数据规模无关

可hash:

  • 数值型:int、float、complex
  • 布尔型:True、False
  • 字符串:string、bytes
  • 元组:tuple
  • None

set的元素必须是可hash的

集合

  • 全集
    所有元素的集合。
  • 子集subset和超集superset
    一个集合A所有元素都在另外一个集合B内,A是B的子集,B是A的超集
  • 真子集和真超集
    A是B的子集,且A不等于B,A就是B的真子集,B是A的真超集
  • 并集:多个集合合并的结果
  • 交集:多个集合的公共部分
  • 差集:集合中除去和其他集合公共部分

集合运算

  • 并集
    将两个集合A和B的所有的元素合并到一起,组成的集合被称作集合A和集合B的并集,符号为 |
  • 交集
    集合A和B,由所有属于A且属于B的元素组成的集合,符号为&
  • 差集
    集合A和B,由所有属于A且不属于B的元素组成的集合,符号为 -
  • 对称差集
    集合A和B,由所有不属于A和B的交集元素组成的集合,记作(A-B)u (B-A),符号为^
  • issubset(other):判断当前集合是否是另外一个集合的子集
  • set1<set2:判断set1是否是set2的真子集
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_36883141/article/details/89056838
今日推荐