python数据结构之集合(set)——超详细
集合
1.什么是集合
用一个大括号括起一堆元素,用逗号隔开,并且里面的元素唯一,称之为集合,和数学上的集合类似
num = {1, 2, 3, 4, 5}
num
{1, 2, 3, 4, 5}
2.集合是无序的,所以不支持索引功能,也不支持切片功能,并且会自动的将重复的元素删掉,具有去重的功能
num[2]
---------------------------------------------------------------------------TypeError Traceback (most recent call last)<ipython-input-4-2c9c91209e53> in <module>()
----> 1 num[2]TypeError: 'set' object does not support indexing
num = {1, 1, 1, 1, 2}
num
{1, 2}
3.创建集合
有俩种方式:1.直接将元素用大括号({})括起来;2.使用set()函数
set1 = {1, 2, 3, 4, 5}
set2 = set([1, 2, 3, 4, 5])
set1 == set2
True
set3 = set("123456")
set3
{'1', '2', '3', '4', '5', '6'}
4.我们可以通过set的方式将列表中重复的元素去掉
list1 = [1, 2, 3, 4, 5, 5]
list1 = list(set(list1))
list1
[1, 2, 3, 4, 5]
5.访问集合
通过迭代的方式访问集合中的元素
set1 = {1, 2, 3, 4, 5}
for i in set1:print(i, end = " ")
1 2 3 4 5
6.向集合中添加、删除元素
# 使用add()方法可以向集合中添加元素
set1.add(6)
set1
{1, 2, 3, 4, 5, 6}
# 使用remove()方法删除集合中的元素
set1.remove(5)
set1
{1, 2, 3, 4, 6}
7.不可变集合
如果期望集合中的元素不能随意被改变,我们可以使用frozenset()函数,把集合给frozen(冰冻)起来
set1 = frozenset({1, 2, 3, 4, 5})
set1[0] = 2
---------------------------------------------------------------------------TypeError Traceback (most recent call last)<ipython-input-16-1f4f30b838db> in <module>()1 set1 = frozenset({1, 2, 3, 4, 5})
----> 2 set1[0] = 2TypeError: 'frozenset' object does not support item assignment
8.集合的运算
求交集a & b
set1 = {1, 2, 3}
set2 = {2, 3, 5}
set1 & set2
{2, 3}
求并集 a | b
set1 | set2
{1, 2, 3, 5}
求异或集 a ^ b
set1 ^ set2
{1, 5}
集合的减法 a - b 表示从a集合中去掉b集合包含a的部分
set1 - set2
{1}
python数据结构之集合(set)——超详细相关推荐
- python数据结构之字典(dict)——超详细
字典(dict) 1.什么是字典 字典是具有映射关系的一个集合,有自己的标志性符号,用{}来定义.字典由多个键以及其对应的键值共同构成的,字典是无序的,只讲究对应关系,并且字典中的键是独一无二的 1. ...
- python数据结构之列表(list)——超详细
列表 1.创建方式 [] 或 list() a = [] # 表示一个空列表 a = [1, 2, 3, 4, 5] a [1, 2, 3, 4, 5] list("hello wor ...
- python数据结构之元组(tuple)——超详细
元组 元组和列表相比,元组不可改变,且创建的时候逗号(,)才是元组的标志所在,小括号只是起一个补充作用,为了看起来好理解 1.创建元组 tuple2 = 1, 2, 3, 4 tuple2 (1 ...
- Java集合(超详细-含源码)
一 集合体系结构 集合的体系结构分为单列集合和双列集合 二 Collection单列集合 Collection是单列集合的祖宗接口,他的功能是全部单列集合都可以继承使用的. 单列集合接口下又分为Lis ...
- python逻辑运算的一些流程图_Python大牛历时一个月打造的Python系统学习流程图,超详细!...
对于刚开始接触Python的小伙伴来说,没有思路方法,不知道从何开始学习,把软件环境安装好后就不知所措了!接下来我给大家分享下多位大牛倾力打造的python系统学习流程,一个月才设计完的! Pytho ...
- 数据结构 —— 单链表(超详细图解 接口函数实现)
系列文章目录 数据结构 -- 顺序表 数据结构 -- 单链表 数据结构 -- 双向链表 数据结构 -- 队列 数据结构 -- 栈 数据结构 -- 堆 数据结构 -- 二叉树 数据结构 -- 八大排序 ...
- 13位Python大牛历时一个月打造的Python系统学习流程图,超详细!
对于刚开始接触Python的小伙伴来说,没有思路方法,不知道从何开始学习,把软件环境安装好后就不知所措了!接下来我给大家分享下多位大牛倾力打造的python系统学习流程,一个月才设计完的! #Pyth ...
- python逻辑流程图_Python大牛历时一个月打造的Python系统学习流程图,超详细!
对于刚开始接触Python的小伙伴来说,没有思路方法,不知道从何开始学习,把软件环境安装好后就不知所措了!接下来我给大家分享下多位大牛倾力打造的python系统学习流程,一个月才设计完的! Pytho ...
- 用python做算法初步流程图_13位Python大牛历时一个月打造的Python系统学习流程图,超详细!...
对于刚开始接触Python的小伙伴来说,没有思路方法,不知道从何开始学习,把软件环境安装好后就不知所措了!接下来我给大家分享下多位大牛倾力打造的python系统学习流程,一个月才设计完的! 需要pyt ...
最新文章
- Scala 集合入门
- android自定义view获取控件,android 自定义控件View在Activity中使用findByViewId得到结果为null...
- 【C语言入门教程】7.1 结构体类型变量的定义和引用
- HTML5 Audio(音频)
- oracle 如何形成死锁,Oracle数据表中的死锁情况解决方法
- 一个ASP.NE导出Excel类
- css布局与ldquo;切图rdquo;
- HBase性能优化方法总结
- EventThread线程对VSync的分发
- 格局再变?AWS CDN 落地中国
- 软件测试方法和技术知识点有哪些?
- druid加密数据库密码
- Android 点击图片全屏预览 -——ZoomPreviewPicture默认预览使用
- html 在框架里弹出页面,iframe弹出新窗口 iframe页面打开新窗口问题
- Job Shop Schedule 生产调度问题 (一) 简介
- android 微信朋友圈头像,微信进阶玩法,这样设置朋友圈和头像,个性又好看
- 散列函数和数字签名概念
- BZOJ2754: [SCOI2012]喵星球上的点名(AC自动机/后缀自动机)
- cygwin生成so
- 为何计算机用户名无法改回,电脑用户名为中文导致一些程序无法正常运行的解决办法,将电脑用户名的中文改为英文。...
热门文章
- Codeforces Round #327 div2
- 20165115 2017-2018-2 《Java程序设计》第六周学习总结
- 服务器内容推送技术(转)
- 手机网页宽度自动适应屏幕宽度的方…
- js无限加载分页原理实现
- 微软虚拟化技术——构建高效开发与测试环境
- MyEclipse下开发Web Service(转)
- 【PyQt5】连接 mysql 查询数据 并显示在 tableWidget 表格
- Java实现密码学工具,集成了对称加密算法DES,AES,IDEA,公开加密算法RSA,ECC,散列算法MD5,SHA1,CRC32,以及RSA,DSA,ECDSA数字签名验证示例。
- 【微型计算机原理与接口技术】80X86微处理器发展与内部结构