Python学习——集合

news2024/11/15 13:34:22

一、集合的定义
集合也是Python语言所提供的内置数据结构,集合与列表、字典一样都属于可变类型的序列,集合是没有value的字典,所以集合也是无序的。
二、集合的创建
方式一:使用大括号进行创建

#使用大括号创建结合
s={1,3,5,7,9}
print(s)

运行结果
在这里插入图片描述
方法二:使用内置函数set进行创建,同时也可以把其他数据结构转换为集合。

#使用内置函数创建
#产生06的数作为集合
s=set(range(6))
print(s)
#将列表转化为集合
print(set([0,1,2,3,4]))
#将元组转换成集合
print(set((5,6,7,8)))
#将字符串转化为集合
print(set('python'))
#将集合转化为集合
print(set({9,10,11,12}))
#创建一个空的集合
print(set())

运行结果
在这里插入图片描述
注意因为集合可以视作没有值的字典,所以可以理解为只有键,故集合中的元素不能重复,如果重复则会被覆盖。

#集合中的元素不能重复,否则会被覆盖
s={1,1,2,1,3,5,5,7}
print(s)

运行结果
在这里插入图片描述
三、集合元素的判断
与前面一样,使用in或not in ,输出结果是true和false。

s={1,3,5,7,9}
print(1 in s)
print(1 not in s)
print(100 in s)
print(100 not in s)

运行结果
在这里插入图片描述
四、集合元素的添加
(1)使用add(),一次添加一个元素

s={0,1,2,3,4,5,6}
print('原集合',s)

#使用add,添加一个元素
s.add(7)
print('添加之后的集合',s)

运行结果
在这里插入图片描述
(2)使用update(),至少添加一个元素

s={0,1,2,3,4,5,6}
print('原集合',s)

#使用update,至少添加一个元素
s.update({7,8,9,10,11})
print('添加后的',s)

运行结果在这里插入图片描述
五、集合元素的删除
(1)使用remove(),一次删除一个指定元素,如果指定元素不存在,报错KeyError

s={0,1,2,3,4,5,6}
print('原集合',s)

s.remove(1)
print('删除后的',s)

s.remove(100)
print(s)

运行结果
在这里插入图片描述
(2)使用discard(),一次删除一个指定的元素,如果指定元素不存在,也不会报错,只会输出原来的列表

s={0,1,2,3,4,5,6}
print('原集合',s)

s.discard(1)
print('删除后的',s)

s.discard(100)
print(s)

运行结果在这里插入图片描述
(3)使用pop(),一次删除且只能删除一个任意元素。

s={0,1,2,3,4,5,6}
print('原集合',s)

#使用pop(),一次删除且只能删除一个任意元素。
s.pop()
print(s)

运行结果
在这里插入图片描述
(4)使用clear(),清空集合。

s={0,1,2,3,4,5,6}
print('原集合',s)

#使用pop(),一次删除且只能删除一个任意元素。
s.clear()
print(s)

运行结果
在这里插入图片描述

六、集合间的关系
由之前的知识储备可知,集合间的关系有相等,谁是谁的子集,谁是谁的超集,两集合之间是否有交集等。
(1)集合相等

#判断集合是否相等
s1={1,2,3,4}
s2={4,3,2,1}
print(s1==s2)

我们知道集合中的元素是无序的,所以运行结果为
在这里插入图片描述
(2)子集与超集
子集

#子集与超集
s1={1,2,3,4,5,6,7,8}
s2={1,2,3,4}
s3={1,2,3,9}

print(s2.issubset(s1))
print(s3.issubset(s1))

运行结果
在这里插入图片描述
超集

#子集与超集
s1={1,2,3,4,5,6,7,8}
s2={1,2,3,4}
s3={1,2,3,9}

print(s1.issuperset(s2))
print(s1.issuperset(s3))

运行结果
在这里插入图片描述
(3)判断两个间是否有交集
注意有交集输出结果为false,无交集输出结果为true

#交集
s1={5,6,7,8}
s2={1,2,3,4}
s3={1,2,3,9}

print(s1.isdisjoint(s2))
print(s2.isdisjoint(s3))

运行结果
在这里插入图片描述
七.集合的数学操作
(1)交集操作

#交集操作
s1={1,2,3,4,5}
s2={3,4,5,6,7}

print(s1.intersection(s2))
print(s1 & s2)

运行结果
在这里插入图片描述
(2)并集操作

#交集操作
s1={1,2,3,4,5}
s2={3,4,5,6,7}

print(s1.union(s2))
print(s1 | s2)

运行结果
在这里插入图片描述
(3)差集

#差集
s1={1,2,3,4}
s2={2,3,4,5,6}

print(s1.difference(s2))
print(s1-s2)

print(s2.difference(s1))
print(s2-s1)

运行结果
在这里插入图片描述
(4)对称差集

#差集
s1={1,2,3,4}
s2={2,3,4,5,6}

print(s1.symmetric_difference(s2))
print(s1^s2)

运行结果
在这里插入图片描述
八、集合生成式
与列表生成式相似,将列表生成式的方括号改为花括号即可

#集合生成式
s1={i for i in range(10)}
s2={2*i for i in range(10)}
s3={i*i for i in range(10)}
print(s1)
print(s2)
print(s3)

运行结果
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/693279.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

STM32H743 SOEM EtherCAT基于STM32H743芯片和SOEM的EtherCAT主站源码

一个基于STM32H743芯片和SOEM协议栈的EtherCAT主站源码。该源码提供了配套的CUBE工程,使用的是SOEM协议栈的1.3.1版本。此外,还可以使用NUCLEO-H743ZI开发板进行配套开发。该系统支持DC同步,并且可以与多种驱动器型号配合使用,包括…

VC++添加一般类

VC6新建一个单文档工程; 然后从菜单中选择 插入类;弹出下图对话框;选择类的类型为 Generic Class; 输入类名; 确定之后,会生成一个.h文件,一个.cpp文件;包含基本的构造和析构函数&…

Day07

目录 1、使用JsonIgnoreProperties 2、前端日期字符串转换LocalDateTime异常 1、使用JsonIgnoreProperties 在做项目时把前端的JSON对象转为dto对象时,出现了异常 Resolved [org.springframework.http.converter.HttpMessageNotReadableException: JSON parse er…

go-cqhttp签名服务sign-server的本地搭建

新版go-cqhttp新增签名服务器签名服务器相关问题 Issue #2242 Mrs4s/go-cqhttp GitHubhttps://github.com/Mrs4s/go-cqhttp/issues/2242 其在win10系统下本地化搭建的方式为: 1.解压缩qq安装包提取lib里面的libfekit.so、libQSec.so文件并存放至一个文件夹&…

【Vue3】CustomImport 导入文件组件

1. 效果图 2. 组件完整代码 <template><div class"custom-import-warpper"><el-dialog v-model"dialogVisible" :title"dialogTitle" width"600px" :close-on-click-modal"false"><el-form label-wid…

SAP从入门到放弃系列之报废率-主数据维护-Scrap

文章目录 一、前言二、场景概述&#xff1a;三、报废的类型&#xff1a;3.1、装配报废3.2、组件报废3.3、工序报废-料废3.4、工序报废-工废 四、数据维护&#xff1a;4.1、装配报废&#xff08;Assembly scrap&#xff09;4.2、组件报废(Component scrap)4.3、工序报废-料废(Op…

windows环境使用cmake配置pcl

安装环境 cmake版本&#xff1a;cmake-3.26.3-windows-x86_64 pcl版本&#xff1a;PCL 1.13.1 vs版本&#xff1a;vs2022 配置流程 cmake编译准备&#xff1a;新建两个文件夹source和cmake_bin。source用于存放.cpp文件和CMakeLists.txt 文件&#xff1b;cmake_bin存放配置生…

【NLP】理解LSTM的内在逻辑

一、说明 在学习RNN的时候,多少有些东西可以作为实例进行原理性实践;而进入LSTM时代,短小的能说明原理的案例实验并不多,相反,对此的参考文献却海啸般地到来,让人来不及消化;本文是万篇论文之一,因其叙述的独特性,被我选入介绍给大家。 二、从循环神经网络说起 人类并…

LeetCode刷题 | 1049. 最后一块石头的重量 II、494. 目标和、474. 一和零

1049. 最后一块石头的重量 II 有一堆石头&#xff0c;用整数数组 stones 表示。其中 stones[i] 表示第 i 块石头的重量。 每一回合&#xff0c;从中选出任意两块石头&#xff0c;然后将它们一起粉碎。假设石头的重量分别为 x 和 y&#xff0c; 且 x < y。那么粉碎的可能结…

死信是什么,如何运用RabbitMQ的死信机制?

系列文章目录 手把手教你&#xff0c;本地RabbitMQ服务搭建&#xff08;windows&#xff09; 消息队列选型——为什么选择RabbitMQ RabbitMQ 五种消息模型 RabbitMQ 能保证消息可靠性吗 推或拉&#xff1f; RabbitMQ 消费模式该如何选择 死信是什么&#xff0c;如何运用Rabbit…

使用影刀RPA合并excel数据

合并不同sheet&#xff1a; 先获取不同sheet中的表头&#xff0c;合并所有表头并去重存作列表&#xff0c;新建excel在第一行插入该表头数据,作合并数据存放使用循环方法&#xff0c;依次获取每个sheet的数据&#xff0c;用if判断表头是否在1的列表中&#xff0c;在的话则将整…

618技术揭秘:探究竞速榜页面核心前端技术 | 京东云技术团队

前言 H5页面作为移动端Web应用的重要形式之一&#xff0c;已经成为了现代Web开发的热门话题。在H5页面的开发过程中&#xff0c;前端技术的应用至关重要。本文将探究京东竞速榜H5页面的核心前端技术&#xff0c;包括动画、样式配置化、皮肤切换、海报技术、调试技巧等方面&…

easyX库图像处理相关函数

0.图像处理相关函数与类型概览 您好&#xff0c;这里是limou3434&#xff0c;本次我将给您带来的是easyX的图像处理相关接口。 如果您感兴趣也可以看看我的其他内容。 函数或数据类型描述IMAGE保存图像的对象。loadimage读取图片文件。putimage在当前绘图设备上绘制指定图像…

10--Gradle进阶 - Gradle任务的执行

10--Gradle进阶 - Gradle任务的执行 前言 在前面的篇章中&#xff0c;我们尝试执行了 gradle 的 task&#xff0c;但是不清楚有哪些语法&#xff0c;下面来介绍一下。 任务执行 任务执行语法&#xff1a;gradle [taskName...] [--option-name...]。 分类解释常见的任务&#xf…

沉浸式三维虚拟展厅交互体验科技感十足

随着科技的不断发展进步&#xff0c;展厅的表现形式也变得多样化&#xff0c;紧跟时代发展步伐&#xff0c;迭代创新。 3D虚拟展厅具有四大优势 一、降低成本&#xff0c;提高效率 3D“VR线上展厅”将艺术优势资源转到线上搭建的艺术线上展平台&#xff0c;相对传统艺术展来说有…

ModaHub魔搭社区:详解向量数据库Milvus的Mishards:集群分片中间件(二)

目录 元数据 服务发现 元数据 元数据记录了底层数据的组织结构信息。在分布式系统中&#xff0c;Milvus 写节点是元数据唯一的生产者&#xff0c;而 Mishards 节点、Milvus 写节点和读节点都是元数据的消费者。目前版本的 Milvus 只支持 MySQL 和 SQLite 作为元数据的存储后…

SpringBoot整合网易邮箱

SpringBoot整合邮箱 1&#xff0c;开启POP3/SMTP/IMAP服务 注意&#xff1a;每个邮箱的密码唯一&#xff0c;不要随意分享给他人 最后就是这个样子了 2&#xff0c;整合测试 2.1&#xff0c;pom.xml <?xml version"1.0" encoding"UTF-8"?> <…

Just KNIME it [S2C13] 机器学习的可解释性

朋友们&#xff0c;Just KNIME it 还有在跟进吗? 本季已经到 13 期啦。 本期探讨的主题是机器学习的可解释性问题&#xff0c;快随指北君一起看看吧。 挑战 挑战13&#xff1a;揭示犯罪率之迷 难度&#xff1a;中等 情境描述&#xff1a;作为一名在房地产公司任职的数据科学家…

Apikit 自学日记:发起文档测试-HTTP

HTTP 功能入口&#xff1a;API管理应用 / 选中某个项目 / API文档菜单 / 选中某一API文档 / 点击“测试”TAB API文档测试页&#xff0c;可对该API文档描述的接口进行快速测试。API文档测试页分为地址控制栏、请求控制区、返回展示区&#xff0c;以及测试辅助工具区共四个部分…

Android进阶之路 - 深入浅出字体、字体库

当时组内临时接到一个换字体库的需求&#xff0c;这个需求相对简单&#xff0c;因为手头有其他事情&#xff0c;同时之前也没换过字体库&#xff0c;就交给了同事去做了&#xff1b;现在有时间就好好充实下自己 ( 我写的也未必全对&#xff0c;如有不足可直接提出&#xff0c;相…