(python)数据结构---集合
一、描述
- 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)数据结构---集合的更多相关文章
- python 数据结构-集合set
原文地址:http://docs.pythontab.com/python/python3.4/datastructures.html#tut-tuples 集合是一个无序不重复元素的集. 基本功能包 ...
- Python数据结构之四——set(集合)
Python版本:3.6.2 操作系统:Windows 作者:SmallWZQ 经过几天的回顾和学习,我终于把Python 3.x中的基础知识介绍好啦.下面将要继续什么呢?让我想想先~~~嗯,还是 ...
- Python数据结构与算法--算法分析
在计算机科学中,算法分析(Analysis of algorithm)是分析执行一个给定算法需要消耗的计算资源数量(例如计算时间,存储器使用等)的过程.算法的效率或复杂度在理论上表示为一个函数.其定义 ...
- python数据结构之树和二叉树(先序遍历、中序遍历和后序遍历)
python数据结构之树和二叉树(先序遍历.中序遍历和后序遍历) 树 树是\(n\)(\(n\ge 0\))个结点的有限集.在任意一棵非空树中,有且只有一个根结点. 二叉树是有限个元素的集合,该集合或 ...
- Python学习【第2篇】:Python数据结构
Python数据结构 1.数字类型 2.字符串 3.列表 4.元组 5.字典 6.集合
- Python - 数据结构 - 第十五天
Python 数据结构 本章节我们主要结合前面所学的知识点来介绍Python数据结构. 列表 Python中列表是可变的,这是它区别于字符串和元组的最重要的特点,一句话概括即:列表可以修改,而字符串和 ...
- Python数据结构汇总
Python数据结构汇总 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.线性数据结构 1>.列表(List) 在内存空间中是连续地址,查询速度快,修改也快,但不利于频繁新 ...
- Python 数据结构理解分享
摘要:分享学习Python数据结构的一些理解,主要包含序列(如列表和元组),映射(如字典)以及集合3中基本的数据结构,以及可变和不可变数据类型. Python 中的数据结构是根据某种方式将数据元素组合 ...
- Python数据结构与算法之图的广度优先与深度优先搜索算法示例
本文实例讲述了Python数据结构与算法之图的广度优先与深度优先搜索算法.分享给大家供大家参考,具体如下: 根据维基百科的伪代码实现: 广度优先BFS: 使用队列,集合 标记初始结点已被发现,放入队列 ...
- python数据结构树和二叉树简介
一.树的定义 树形结构是一类重要的非线性结构.树形结构是结点之间有分支,并具有层次关系的结构.它非常类似于自然界中的树.树的递归定义:树(Tree)是n(n≥0)个结点的有限集T,T为空时称为空树,否 ...
随机推荐
- [Maven]package com.sun.image.codec.jpeg does not exist
----------------------------------------------------------------- 原创博文,如需转载请通知作者并注明出处! 博主:疲惫的豆豆 链接:h ...
- salesforce零基础学习(九十二)使用Ant Migration Tool 实现Metadata迁移
我们在做项目时经常会使用changeset作为部署工具,但是某些场景使用changeset会比较难操作,比如当我们在sandbox将apex class更改名字想要部署到生产的org或者其他环境的or ...
- DWR第五篇之文件上传
1. 在第一篇架构基础上进行 2. 修改maven依赖 <dependencies> <dependency> <groupId>org.directwebremo ...
- shiro 获取请求头中的 sessionId
前言: 在前后端项目中, 前端有可能会要求, 后台返回一个 sessionId 给他, 然后他在请求后台接口时, 把这个sessionId 带给后台, 后台拿到这个sessionId , 就能识别, ...
- 内核第三讲,进入ring0,以及编写第一个内核驱动程序.
内核第三讲,进入ring0,以及编写第一个内核驱动程序. PS: 请下配置双机调试,下方有可能用到.如果不配置,则你可以不用调试, 博客连接: http://www.cnblogs.com/iBina ...
- Java Web中提交表单之后跳转到WebContent目录下的子目录里的jsp文件
最近在做一个系统,需要完成登录动能进行跳转到另一个页面.在这个项目里面,我把 jsp,css,js文件都统一放在 WebContent 目录下的一个 WebPage 里面. 按照以前的习惯,写好了 s ...
- Java 锁优化
一.重量级锁 Java中,Synchronized是通过对象内部的一个叫做监视器锁(monitor)来实现的.但是监视器锁本质又是依赖于底层的操作系统的Mutex Lock来实现的.而操作系统实现 ...
- 2.Magicodes.NET框架之路——策略管理
闲话策略 策略,有很多解释.但鄙人个人比较看重这点: 策略,是为了实现某个目标或者针对某些问题而制定的应对方案,以最终实现目标.比如为实现生娃而XXOO. 因此在本框架中,策略(Strategy),则 ...
- SVN不能解锁,报错:没有匹配的可用锁令牌的解决方法
命令行进入到要解锁的目录,执行 svn unlock 要解锁的文档名 进行解锁:若还是打不开锁,就用强制解锁 , svn unlock -f(--force) 要解锁的文档名 也可以通过 svnadm ...
- vmware vcsa-6.5 网络架构之虚拟机的分布式交换机
一.配置VDS 必须来用vcenter server来配置 下面一些理论是抄的王老师的,供大家学习,主意在于学习技术,分享知识. 1.VDS架构图如下: 2.架构图里面有两个逻辑层,数据面板,管理面板 ...