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

(python)数据结构---集合

时间:2018-11-02 11:11:08      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:效率   必须   hash   iter   key   并集   子集和   描述   合并   

一、描述

  • set翻译为集合
  • set是可变的无序的不可重复的
  • set的元素要求可哈西(不可变的数据类型可哈西,可变的数据类型不可哈希)
  • set是无序的,因此不可以索引,也不可以修改
  • 线型结构的查询时间复杂度是O(n),随着数据的增大而效率下降;set、dict内部使用hash值作为key,时间复杂度可以做到O(1),和数据规模无关

二、集合的相关方法

1、set.add(elem)

  • 增加一个元素到集合中,如果集合中已经有这个元素,则什么都不做。
1 s = {2, 3, 4, 5}
2 s.add(6)
3 print(s)

运行结果如下:
{2, 3, 4, 5, 6}

2、set.update(iterable)

  • 用法与add方法一致,只不过参数必须是可迭代对象
1 s = {2, 3, 4, 5}
2 s.update("a")
3 print(s)

运行结果如下:
{2, 3, 4, 5, ‘a‘}

3、set.remove(elem)

  • 从set中移除指定的元素,如果元素不存在,抛异常KeyError
  • 与它作用相同的方法是discard(elem),不同在于如果元素不存在,什么都不做
1 s = {2, 3, 4, 5}
2 s.remove(2)
3 print(s)

运行结果如下:
{3, 4, 5}

4、set.pop()

  • 移除并返回任意的元素
  • 如果是空集,则抛异常KeyError
1 s = {3, 4, 5}
2 s.pop()
3 print(s)

运行结果如下:
{4, 5}

5、set.clear()

  • 清空集合

三、集合的相关概念

1、全集

  • 所有元素的集合

2、子集和超集

  • 一个集合A的所有元素都在另一个集合B内,A就是B的子集,B就是A的超集

3、真子集和真超集

  • A是B的子集,且A不等于B,A就是B的真子集,B就是A的真超集

4、并集

  • 多个集合合并的结果

5、交集

  • 多个集合的公共部分

6、差集

  • 集合中除去和其他集合公共的部分

(python)数据结构---集合

标签:效率   必须   hash   iter   key   并集   子集和   描述   合并   

原文地址:https://www.cnblogs.com/Sweltering/p/9894754.html

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