集合set


定义

  • 可变的、无序的、不重复的元素集合

  • 约定 set 为集合,collection 为集合类型,是一个大概念

  • set() 定义空集合,如果s = {} 则 type 为空字典

  • 定义、初始化

    • s1 = set()
      s2 = set(range(5))
      s3 = set(list(range(10)))
      s4 = {} #dict
      s5 = {1,2,3} #set
      s6 = {[1],(1,),1} #不可哈希
      s7 = {(1,2),5,None,"abc",b'abc'}
      

set的元素

  • set 的元素要求必须可以 hash #可使用hash()测试
  • 当前学过不可哈希的类型有 list、set
  • 元素不可以索引
  • set 可以迭代
  • 不可变类型(可 hash)
    • 数值型:int float complex
    • 布尔型:Ture False
    • string bytes
    • tuple
    • None

set增加

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

set删除

  • remove(elem)
    • 从 set 中移除一个元素
    • 元素不存在,抛 keyError 异常
  • discard(elem)
    • 从 set 中移除一个元素
    • 元素不存在,什么都不做
  • pop()
    • 移除并返回任意的元素,#为什么是任意元素?
    • 空集返回 keyError 异常
  • clear()
    • 移除所有元素

set查询、修改

  • 修改
    • 要么删除,要么加入新元素
  • 查询
    • 非线性结构,无法索引
  • 遍历
    • 可以迭代所有元素
  • 成员运算符
    • in 和 not in 判断元素是否在 set 中
    • 效率极高,list 和 set 比较

posted @ 2020-04-02 13:41  你的脚印我的世界  阅读(138)  评论(0)    收藏  举报