一、描述

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

二、集合的相关方法

1、set.add(elem)

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

2、set.update(iterable)

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

3、set.remove(elem)

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

4、set.pop()

  • 移除并返回任意的元素
  • 如果是空集,则抛异常KeyError
 s = {3, 4, 5}
s.pop()
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)数据结构---集合的更多相关文章

  1. python 数据结构-集合set

    原文地址:http://docs.pythontab.com/python/python3.4/datastructures.html#tut-tuples 集合是一个无序不重复元素的集. 基本功能包 ...

  2. Python数据结构之四——set(集合)

    Python版本:3.6.2  操作系统:Windows  作者:SmallWZQ 经过几天的回顾和学习,我终于把Python 3.x中的基础知识介绍好啦.下面将要继续什么呢?让我想想先~~~嗯,还是 ...

  3. Python数据结构与算法--算法分析

    在计算机科学中,算法分析(Analysis of algorithm)是分析执行一个给定算法需要消耗的计算资源数量(例如计算时间,存储器使用等)的过程.算法的效率或复杂度在理论上表示为一个函数.其定义 ...

  4. python数据结构之树和二叉树(先序遍历、中序遍历和后序遍历)

    python数据结构之树和二叉树(先序遍历.中序遍历和后序遍历) 树 树是\(n\)(\(n\ge 0\))个结点的有限集.在任意一棵非空树中,有且只有一个根结点. 二叉树是有限个元素的集合,该集合或 ...

  5. Python学习【第2篇】:Python数据结构

    Python数据结构 1.数字类型 2.字符串 3.列表 4.元组 5.字典 6.集合

  6. Python - 数据结构 - 第十五天

    Python 数据结构 本章节我们主要结合前面所学的知识点来介绍Python数据结构. 列表 Python中列表是可变的,这是它区别于字符串和元组的最重要的特点,一句话概括即:列表可以修改,而字符串和 ...

  7. Python数据结构汇总

    Python数据结构汇总 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.线性数据结构 1>.列表(List) 在内存空间中是连续地址,查询速度快,修改也快,但不利于频繁新 ...

  8. Python 数据结构理解分享

    摘要:分享学习Python数据结构的一些理解,主要包含序列(如列表和元组),映射(如字典)以及集合3中基本的数据结构,以及可变和不可变数据类型. Python 中的数据结构是根据某种方式将数据元素组合 ...

  9. Python数据结构与算法之图的广度优先与深度优先搜索算法示例

    本文实例讲述了Python数据结构与算法之图的广度优先与深度优先搜索算法.分享给大家供大家参考,具体如下: 根据维基百科的伪代码实现: 广度优先BFS: 使用队列,集合 标记初始结点已被发现,放入队列 ...

  10. python数据结构树和二叉树简介

    一.树的定义 树形结构是一类重要的非线性结构.树形结构是结点之间有分支,并具有层次关系的结构.它非常类似于自然界中的树.树的递归定义:树(Tree)是n(n≥0)个结点的有限集T,T为空时称为空树,否 ...

随机推荐

  1. HP服务器设置iLO

    HP服务器设置iLO步凑 1.开机出现界面—按下F11进入Boot Menu: 2.选择Generic USB Boot回车: 3.选择System Configuration回车: 4.选择iLO ...

  2. mysql 开发进阶篇系列 55 权限与安全(安全事项 )

    一. 操作系统层面安全 对于数据库来说,安全很重要,本章将从操作系统和数据库两个层面对mysql的安全问题进行了解. 1. 严格控制操作系统账号和权限 在数据库服务器上要严格控制操作系统的账号和权限, ...

  3. EL表达式jsp页面double小数点后保留两位

    EL表达式jsp页面double小数点后保留两位,四舍五入 <fmt:formatNumber type="number" value="${member.logi ...

  4. 一个前端开发者换电脑的过程(IDE篇)

    一台全新的电脑,需要做出怎样的改变,才可以摇身一变成为前端开发者能用的电脑呢.首先,我们需要安装一个编辑器,这里我们选择目前最火的vscode. 先去到它的官网,把对应版本的vscode下载下来. 然 ...

  5. 图片预览(适用于IE6,9,10,Firefox)

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...

  6. jvm详情——3、JVM基本垃圾回收算法回收策略

    JVM基本垃圾回收算法回收策略 引用计数(Reference Counting):比较古老的回收算法.原理是此对象有一个引用,即增加一个计数,删除一个引用则减少一个计数.垃圾回收时,只用收集计数为0的 ...

  7. Docker在Linux上运行NetCore系列(四)使用私有Nuget与多个本地包引用运行ASPNetCore

    转发请注明此文章作者与路径,请尊重原著,违者必究. 本篇文章演示了使用Dockerfile在Linux(ubuntu16.04)系统上构建ASPNetCore应用,并且在一个解决方案中存在多个项目之间 ...

  8. ls 指令的介绍

    每个文件在linux下面都会记录许多的时间参数, 其实是有三个主要的变动时间,那么三个时间的意义是什么呢? modification time (mtime) : 当该文件的“内容数据”变更时,就会更 ...

  9. SQL语句NOT IN优化之换用NOT EXISTS

    NOT IN查询示例(示例背景描述:根据条件查询Questions表得到的数据基本在PostedData表中不存在,为完全保证查询结果在PostedData表中不存在,使用NOT IN): SET S ...

  10. SQL去除数据库表中tab、空格、回车符等特殊字符的解决方法

    按照ASCII码, SELECT char(64) 例如64 对应 @,则 ), 'kk'); 则结果为 abckkqq.com 依此类推, 去掉其他特殊符号,参考ASCII码对照表, 去掉tab符号 ...