论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
软件与程序人生
›
后端开发
›
Java
›
全网最适合入门的面向对象编程教程:39 Python常用复合 ...
全网最适合入门的面向对象编程教程:39 Python常用复合数据类型-集合 ...
水军大提督
金牌会员
|
2024-8-27 00:17:10
|
显示全部楼层
|
阅读模式
楼主
主题
875
|
帖子
875
|
积分
2625
全网最适合入门的面向对象编程教程:39 Python 常用复合数据类型-集合
摘要:
在 Python 中,集合(set)是一种常用的复合数据类型。集合是一组无序且不重复的元素。与列表和元组不同,集合中的元素是无序的,并且每个元素只能出现一次。
原文链接:
FreakStudio的博客
往期推荐:
学嵌入式的你,还不会面向对象??!
全网最适合入门的面向对象编程教程:00 面向对象设计方法导论
全网最适合入门的面向对象编程教程:01 面向对象编程的基本概念
全网最适合入门的面向对象编程教程:02 类和对象的 Python 实现-使用 Python 创建类
全网最适合入门的面向对象编程教程:03 类和对象的 Python 实现-为自定义类添加属性
全网最适合入门的面向对象编程教程:04 类和对象的Python实现-为自定义类添加方法
全网最适合入门的面向对象编程教程:05 类和对象的Python实现-PyCharm代码标签
全网最适合入门的面向对象编程教程:06 类和对象的Python实现-自定义类的数据封装
全网最适合入门的面向对象编程教程:07 类和对象的Python实现-类型注解
全网最适合入门的面向对象编程教程:08 类和对象的Python实现-@property装饰器
全网最适合入门的面向对象编程教程:09 类和对象的Python实现-类之间的关系
全网最适合入门的面向对象编程教程:10 类和对象的Python实现-类的继续和里氏替换原则
全网最适合入门的面向对象编程教程:11 类和对象的Python实现-子类调用父类方法
全网最适合入门的面向对象编程教程:12 类和对象的Python实现-Python使用logging模块输出程序运行日志
全网最适合入门的面向对象编程教程:13 类和对象的Python实现-可视化阅读代码神器Sourcetrail的安装使用
全网最适合入门的面向对象编程教程:全网最适合入门的面向对象编程教程:14 类和对象的Python实现-类的静态方法和类方法
全网最适合入门的面向对象编程教程:15 类和对象的 Python 实现-__slots__魔法方法
全网最适合入门的面向对象编程教程:16 类和对象的Python实现-多态、方法重写与开闭原则
全网最适合入门的面向对象编程教程:17 类和对象的Python实现-鸭子类型与“file-like object“
全网最适合入门的面向对象编程教程:18 类和对象的Python实现-多重继续与PyQtGraph串口数据绘制曲线图
全网最适合入门的面向对象编程教程:19 类和对象的 Python 实现-使用 PyCharm 主动生成文件解释和函数解释
全网最适合入门的面向对象编程教程:20 类和对象的Python实现-组合关系的实现与CSV文件保存
全网最适合入门的面向对象编程教程:21 类和对象的Python实现-多文件的组织:模块module和包package
全网最适合入门的面向对象编程教程:22 类和对象的Python实现-非常和语法错误
全网最适合入门的面向对象编程教程:23 类和对象的Python实现-抛出非常
全网最适合入门的面向对象编程教程:24 类和对象的Python实现-非常的捕捉与处置惩罚
全网最适合入门的面向对象编程教程:25 类和对象的Python实现-Python判断输入数据类型
全网最适合入门的面向对象编程教程:26 类和对象的Python实现-上下文管理器和with语句
全网最适合入门的面向对象编程教程:27 类和对象的Python实现-Python中非常层级与自定义非常类的实现
全网最适合入门的面向对象编程教程:28 类和对象的Python实现-Python编程原则、哲学和规范大汇总
全网最适合入门的面向对象编程教程:29 类和对象的Python实现-断言与防御性编程和help函数的使用
全网最适合入门的面向对象编程教程:30 Python的内置数据类型-object根类
全网最适合入门的面向对象编程教程:31 Python的内置数据类型-对象Object和类型Type
全网最适合入门的面向对象编程教程:32 Python的内置数据类型-类Class和实例Instance
全网最适合入门的面向对象编程教程:33 Python的内置数据类型-对象Object和类型Type的关系
全网最适合入门的面向对象编程教程:34 Python的内置数据类型-Python常用复合数据类型:元组和定名元组
全网最适合入门的面向对象编程教程:35 Python的内置数据类型-文档字符串和__doc__属性
全网最适合入门的面向对象编程教程:36 Python的内置数据类型-字典
全网最适合入门的面向对象编程教程:37 Python常用复合数据类型-列表和列表推导式
全网最适合入门的面向对象编程教程:38 Python常用复合数据类型-使用列表实现堆栈、队列和双端队列
更多出色内容可看:
给你的 Python 加加快:一文速通 Python 并行计算
一文搞懂 CM3 单片机调试原理
肝了半个月,嵌入式技能栈大汇总出炉
电子计算机类比赛的“武林秘籍”
一个MicroPython的开源项目集锦:awesome-micropython,包含各个方面的Micropython工具库
Avnet ZUBoard 1CG开辟板—深度学习新选择
SenseCraft 部署模型到Grove Vision AI V2图像处置惩罚模块
文档和代码获取:
可访问如下链接举行对文档下载:
https://github.com/leezisheng/Doc
本文档主要先容如何使用 Python 举行面向对象编程,需要读者对 Python 语法和单片机开辟具有基本了解。相比其他解说 Python 面向对象编程的博客或书籍而言,本文档更加具体、侧重于嵌入式上位机应用,以上位机和下位机的常见串口数据收发、数据处置惩罚、动态图绘制等为应用实例,同时使用 Sourcetrail 代码软件对代码举行可视化阅读便于读者理解。
相关示例代码获取链接如下:
https://github.com/leezisheng/Python-OOP-Demo
正文
Python 还支持集合这种数据类型。集合是由不重复元素组成的无序容器。基本用法包括成员检测、消除重复元素。集合对象支持合集、交集、差集、对称差分等数学运算。创建集合用花括号或 set()函数。留意,创建空集合只能用 set(),不能用{},{}创建的是空字典。
在 Python 中,集合可以保存任意可求哈希值的对象,而不只是数字。可求哈希值对象是和可以或许用作字典类型的键一样的对象,因此列表和字典被排除在外。
和数学集合一样,它们只会存集合和字典一样,是无序的。它们都利用底层的基于哈希值的数据结构来包管高效。由于它们是无序的,故集合无法通过索引来查找元素。
使用集合的主要目的是,将世界一分为二:“存在于集合中的”和“集合之外的”。很轻易就可以检查某个项目是在集合中的或者遍历集合中所有的项目,但是如果想要对它们举行排序,则必须先将集合转换为列表。储对象的一份备份。
如下为集合相关操作的一些示例代码:
basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
print(basket)
_# 检测成员是否在集合中_
print('orange' in basket)
print('crabgrass' in basket)
_# 创建两个空集合_
a = set('abracadabra')
print(a)
b = set('alacazam')
print(b)
_# 在 a 中的字母,但不在 b 中_
print(a - b)
_# 在 a 或 b 中的字母_
print(a | b)
_# 在 a 和 b 中都有的字母_
print(a & b)
_# 求 a 和 b中 非都有的字母_
print(a ^ b)
复制代码
如下为运行结果:
这里我们列出来集合的部分操作方法,供读者参考:
方法
描述
add()为集合添加元素。clear()移除集合中的所有元素。copy()拷贝一个集合。difference()返回多个集合的差集。difference_update()移除集合中的元素,该元素在指定的集合也存在。discard()删除集合中指定的元素。intersection()返回集合的交集。intersection_update()返回集合的交集。isdisjoint()判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。issubset()判断指定集合是否为该方法参数集合的子集。issuperset()判断该方法的参数集合是否为指定集合的子集。pop()随机移除元素。remove()移除指定元素。symmetric_difference()返回两个集合中不重复的元素集合。symmetric_difference_update()移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。union()返回两个集合的并集。update()给集合添加元素。len()计算集合元素个数。从集合的操作方法可以显着看出,
集合是用于和其他集合举行运算的,而不仅仅是一个容器。****如果有一些来自两个不同源的数据,并需要快速以某种形式组合起来,以确定数据是否重合或不同,我们可以用集合操作来快速地比较它们。或者如果输入数据可能包含重复的已经加工过的数据,我们可以用集合来比较并只处置惩罚新数据。
和列表类似,集合也支持推导式,但是
当用 in 关键字检查元素是否存在于容器中时,集合比列表的效率更高。
在对一个列表或集合容器使用 value in container 语法时,如果 Container 中有元素等于 value,则返回 True,否则返回 False。在列表中,这将会遍历所有对象直到找到相同的值,而
对于集合来说,只需要求出哈希值并检查是否存在即可。这意味着无论集合有多大,查找一个值是否存在所需要的时间是固定的
,但是对于列表来说列表长度越长搜索一个值所需要的时间就越长。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
水军大提督
金牌会员
这个人很懒什么都没写!
楼主热帖
MySQL高可用架构搭建实战
让软件飞——“X+”技术揭秘 ...
哈希算法-SHA-256-过程详解
Docker(11)-- DockerFile详解
可观测性和传统监控的三大区别 ...
camunda工作流实战项目(表单设计器+流 ...
1. SQL
Could not resolve host: mirrorlist.c ...
使用 OpenTelemetry 和 Loki 实现高效 ...
0. 数据库设计规范化
标签云
存储
挺好的
服务器
快速回复
返回顶部
返回列表