Python的set是一个无序且无重复元素的集合,概念上相当于数学上的无序集,数据结构上相当于dict的键。

既然set是集合,则必然可以实现并、交、差、对称差等集合运算。

set是一组无序排列的可哈希的值,因此可以用作字典中的键。set和之前介绍的list、tuple、dict等一样,可以使用in操作符检查元素是否在集合中存在,使用len()求得集合元素的个数,使用for循环迭代其成员,使用copy()返回一个浅复制。不同之处在于集合本身无序,所以没有索引,就不能实现索引和切片操作。

相关推荐:《Python相关教程》

set具有以下特性:

·元素不重复出现

·元素必须是不可变对象

你可以把set当作是dict中的键来理解,当然仅仅限于数据结构层面。

在Python中set的底层结构和字典是完全一样的都是哈希表,就当成是只有键没有值的字典就可以了。

Python 早期版本就没有set这个类型,那时候开发者都是直接建一个 {key1:None, key2:None}的字典来实现set的功能。

字典和set都是用空间来换时间,空间浪费很大。

set的最大用途是解决了判断某个元素在集合中出现的查找效率问题。>>> timeit.timeit(stmt='10**4 in s',setup='s=range(10**5)', number=10**5)

13.447274759909192

>>> timeit.timeit(stmt='10**4 in s',setup='s=set(xrange(10**5))', number=10**5)

0.006686778187940945

>>>

list的实现方式是链表,空间利用率高追加元素快而方便。

python集合是有序的吗_python set有序吗相关推荐

  1. python集合的并集、交集_Python 集合set()添加删除、交集、并集、集合操作详解

    1.在Python中set是基本数据类型的一种集合类型,它有可变集合(set())和不可变集合(frozenset)两种.创建集合set.集合set添加.集合删除.交集.并集.差集的操作都是非常实用的 ...

  2. python集合的元素可以是_python集合入门须知

    刚接触Python编程语言的时候,会觉得怎么那么多概念要记,也会觉得很难学.下面是关于python集合的相关概念,希望能帮助你在学习python语言时,更上一层楼. 一.集合概述 集合(set):把不 ...

  3. python集合是可变类型吗_python集合是可变类型吗

    python 集合的元素为什么不能是可变数据类型 集合(set)是可以变的,它是一个无序不重复元素集 元组(touple)才是不可变的 Python 中的可变类型对象和不可变类型是什么意思? Pyth ...

  4. python中list是有序的吗_python list有序吗

    摘要 腾兴网为您分享:python list有序吗,榛果民宿,一加商店,小牛,先锋影音等软件知识,以及腾讯qq2013,我的世界游戏盒,游戏赚app,大阆网,iis日志分析工具,吃饭表情包,爱彼此家居 ...

  5. python集合的基本操作不包括_Python基础知识储备,List集合基本操作大盘点

    List列表是Python中最基本的数据结构,也是Python中使用频率最高的数据类型,List列表中的元素不需要具有相同类型,使用起来非常方便.现在就来体验一下List列表的基本操作. list集合 ...

  6. python集合和字典的区别_Python中的字典和集合

    导语:本文章记录了本人在学习Python基础之数据结构篇的重点知识及个人心得,打算入门Python的朋友们可以来一起学习并交流. 本文重点: 1.掌握常见的字典创建,查询,判别方法: 2.了解字典中的 ...

  7. python集合的两种类型_python 入门之 – 集合类型(十九)

    在python中,集合是一个无序的,不重复的数据组合,他的主要工作如下: 1.去重,把一个列表变成集合,就自动去重了 2.关系测试,测试两组数据之间的交集.差集.并集等关系 我来举个例子,前两个月出了 ...

  8. python集合的元素可以是_Python - 集合与元素之集合定义和基本操作方法

    原博文 2019-10-05 14:58 − 集合(set) 定义:由不同元素组成的集合,集合中是一组无序排列可hash的值(不可变的值)例如数字.字符串.元组,可以作为字典的key 定义集合: # ...

  9. python集合如何去除重复数据_Python 迭代删除重复项,集合删除重复项

    1. 迭代删除重复项:先排序列表项,然后通过新迭代(not in)去除重复项,分片打印 def sanitize(time_string): if '-' in time_string: splitt ...

最新文章

  1. “AV终结者/8749”病毒清理办法
  2. echarts空数据如何设置_拼多多分时折扣如何设置优化?分时数据怎么看?
  3. Junos路由器静态路由及动态路由rip和ospf配置测试
  4. 大数据可视化html模板开源_5个最受工程师欢迎的大数据可视化工具
  5. SAP MM MoveMent Type
  6. 华为OJ: 公共字符串计算
  7. 前端jQuery基本语法
  8. python下载bt文件_python获取bt种子的详细信息
  9. pytorch调用tensorboard方法尝试
  10. 拯救Ubuntu环境变量搞蹦导致命令使用不了的办法
  11. Oracle 中session和processes的初始设置
  12. python植物大战僵尸脚本_用 Python 实现植物大战僵尸代码!
  13. 基于STM32F103的电子磁密码锁智能门禁原理图PCB程序设计
  14. win7计算机文件扩展名,win7显示文件后缀名的扩展名方法
  15. 招聘海报在线设计,平面海报设计思路分享
  16. 手动打开与关闭软键盘
  17. python 转换数字为中文的大写
  18. 反思学习,做更好的自己
  19. [paper]Intriguing properties of neural networks(L-BFGS)
  20. C/C++中的日期和时间

热门文章

  1. java 学生信息的增删改查_学生信息的增删改查(java)
  2. 移动app部分机型无法唤起h5支付宝支付_谜之wxs,uni-app如何用它大幅提升性能
  3. linux mysql8配置文件_Linux下 MySQL8安装教程
  4. lotus php,LotusPhp笔记之:Cookie组件的使用详解
  5. mysql的explain怎么看_mysql中explain用法详解
  6. 反射在java中的应用_java反射机制在项目中的运用
  7. 二元偏导数存在的条件_多元函数 可导、可微、连续、一阶偏导数连续 之间关系的总结...
  8. 钉钉api 获取 accesstoken_python3自定义告警信息发送至钉钉群
  9. 牛客练习赛26 E-树上路径 (树链剖分+线段树)
  10. python的0基础入门语法_学习小结(1)