码迷,mamicode.com
首页 > 编程语言 > 详细

python内置函数集合(set)

时间:2019-08-19 21:24:59      阅读:86      评论:0      收藏:0      [点我收藏+]

标签:err   概念   size   remove   car   复杂   集合   iter   使用   

一、集合set的定义初始化

  •  约定set翻译为集合,collection翻译为集合类型,是一个大概念;集合是可变的,无序的,不重复元素的集合
  • set() 定义一个空集合
  • set(iterable)  定义一个有元素的集合
  •  set的元素要求必须可以hash,目前学过的不可hash的类型有list,set 
  •  元素不可以索引
  • 举例:
  • >>> s1 = set()
      >>> s1
      set()
      >>> s2 = set(range(5))
      >>> s2
      {0, 1, 2, 3, 4}
      >>> s3 = set(list(range(10)))
      >>> s3
      {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
      >>> s4 = {9,101,10}
      >>> s5 = {[1],(1,),1}  #报错,集合元素必须是可hash

二、python的哈希hash

  • 在python中list,set和dict都是可变的,所以他们都是不可hash的
  • tuple和string是不可变的,只可以做复制或者切片等操作,所以他们是可hash的

三、集合set元素增加

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

四、集合set元素删除

  • s.remove(value) 从set中移除一个元素,元素不存在,抛出keyError异常
  •  s.discard(value) 从set中移除一个元素,元素不存在什么都不做
  •  s.pop() 移除并返回任意的元素,空集合返回keyError异常
  •  s.clear()  清空集合

五、集合set元素修改,查询

  • set没有修改,要么删除,要么加入新的元素
  •  set是非线性结构,无法索引查询
  •  可以迭代集合中所有元素
  •  in和not in判断元素是否在set中

六、集合set和线性结构

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

 

python内置函数集合(set)

标签:err   概念   size   remove   car   复杂   集合   iter   使用   

原文地址:https://www.cnblogs.com/jiangzuofenghua/p/11379464.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!