5.4章节python中集合创建、删除、增删改

1.集合的创建和删除
2.集合的操作符
3.集合的操作方法和遍历
4.列表、元组、字典、集合的区别

一、集合的创建和删除

  集合(set)是一种内置的数据结构,用于存储唯一且无序的元素。集合是一个可变的数据类型,这意味着你可以添加、删除或修改集合中的元素。集合主要用于数学中的集合操作,如并集、交集、差集等。

在这里插入图片描述

# 直接{}创建集合
s = {10, 21, 36, 19}
print(s)# 集合存储不可变量数据类型
# s1 = {[10,20,3], [5,6,9,8,5],[4,5,8,6,6]}
# print(s1)# 报错TypeError: unhashable type: 'list'# 使用set()创建一个空集合
s2 = set()
print(s2,type(s2))# set() <class 'set'>s3 = {}# 创建的是字典
print(s2,type(s3))# set() <class 'dict'>s4 = set('dhjiweojasaa')
print(s4)s5 = set([2,5,6,8,77,6,3,41,'edwee'])
print(s5)s6 = set(range(1,20))
print(s6)# 集合属于序列的一种
print('max:',max(s4))
print('min:',min(s4))
print('len:',len(s5))
print('yuwen在s4集合串中存在吗?:',(10 in s4))
print('d在s4集合中存在吗?:',(15 in s4))
print('o在s4集合中不存在吗?:',(12 not in s4))# 集合的删除del s5
# print(s5)# NameError: name 's5' is not defined. Did you mean: 's'?

在这里插入图片描述

二、集合的操作符

集合支持多种数学集合操作:

并集:使用 | 或 union() 方法。
交集:使用 & 或 intersection() 方法。
差集:使用 - 或 difference() 方法。
对称差集:使用 ^ 或 symmetric_difference() 方法。

在这里插入图片描述

set1 = {1, 2, 3, 4, 8, 5, 9}
set2 = {3, 4, 5, 6, 7, 10, 20}# 并集
union_set = set1 | set2
print(union_set) # 交集
intersection_set = set1 & set2
print(intersection_set) # 差集
difference_set = set1 - set2
print(difference_set) # 输出set1里 除了set2交集部分# 对称差集
symmetric_difference_set = set1 ^ set2
print(symmetric_difference_set) # 输出set1、set2并集除去交集部分

在这里插入图片描述

三、集合的操作方法和遍历

clear():清空集合中的所有元素。
copy():返回集合的一个副本。
isdisjoint():判断两个集合是否没有交集。
issubset():判断一个集合是否是另一个集合的子集。
issuperset():判断一个集合是否是另一个集合的超集。

add() 方法向集合中添加元素
remove() 方法删除集合中的元素。如果元素不存在,会引发 KeyError 异常
discard() 方法,它会在元素不存在时不做任何操作
pop() 方法来随机删除并返回集合中的一个元素

s = {10, 21, 36, 19}# 向集合添加元素
s.add(29)
print(s)# 删除元素
s.remove(21)
print(s)# 清空所有元素
s.clear()
print(s)# 集合遍历操作
s1 = {4,9,8,5,66,32,47,89}
for i in s1:print(i)# 使用enumerate
for i,j in enumerate(s1):print(i,'--->',j)# 生成式
s2 = {i for i in range(1,20) }
print(s2)s3 = {i for i in range(1,20) if i%2==0}
print(s3)

在这里插入图片描述

四、列表、元组、字典、集合的区别

在这里插入图片描述

与列表(list)、元组(tuple)和字典(dictionary)相比,集合具有以下特点和作用:

1.唯一性:集合中的元素是唯一的,即不允许有重复的元素。这有助于确保数据的唯一性和去重操作。

2.无序性:集合中的元素是无序的,这意味着你不能通过索引来访问集合中的元素。不过,这并不影响集合的性能,因为集合的内部实现通常基于哈希表,这使得查找、添加和删除操作都非常高效。

3.数学运算:集合支持多种数学运算,如并集(union)、交集(intersection)、差集(difference)和对称差集(symmetric difference)。这些操作对于处理集合数据非常有用,可以方便地进行数据的合并、筛选和比较。

4.可变性:Python中的集合是可变的,这意味着你可以在运行时添加、删除或修改集合中的元素。这与元组不同,元组是不可变的。

5.快速查找:由于集合内部通常使用哈希表来存储元素,因此查找操作的平均时间复杂度为O(1),这使得集合在处理大数据集时非常高效。

6.去除重复元素:集合常用于去除列表或其他数据结构中的重复元素。你可以通过将列表转换为集合来快速实现这一点,然后再将集合转换回列表(如果需要保持有序性)。

7.作为字典的键:集合是不可哈希的(因为它是可变的),因此不能作为字典的键。但是,集合中的元素(如果是不可变的,如整数、浮点数、字符串或元组)可以作为字典的键。

8.集合推导式:Python支持集合推导式(set comprehensions),这使得你可以使用类似于列表推导式的语法来创建集合。这有助于简化代码并提高可读性。

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

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

相关文章

【命令操作】Linux上通过mdadm配置软RAID _ 统信 _ 麒麟 _ 方德

原文链接&#xff1a;【命令操作】Linux上通过mdadm配置软RAID | 统信 | 麒麟 | 方德 Hello&#xff0c;大家好啊&#xff01;今天给大家带来一篇关于如何在Linux系统上使用mdadm工具配置软件RAID&#xff08;Redundant Array of Independent Disks&#xff0c;独立磁盘冗余阵列…

2012年国赛高教杯数学建模D题机器人避障问题解题全过程文档及程序

2012年国赛高教杯数学建模 D题 机器人避障问题 图1是一个800800的平面场景图&#xff0c;在原点O(0, 0)点处有一个机器人&#xff0c;它只能在该平面场景范围内活动。图中有12个不同形状的区域是机器人不能与之发生碰撞的障碍物&#xff0c;障碍物的数学描述如下表&#xff1a…

HTTPS证书生成、验签-、证书链

HTTPS证书申请原理 1、制作CSR文件 所谓CSR就是由申请人制作的Certificate Secure Request证书请求文件。制作过程中&#xff0c;系统会产生2个密钥&#xff0c;一个是公钥就是这个CSR文件&#xff0c;另外一个是私钥&#xff0c;存放在服务器上。要制作CSR文件&#xff0c;申…

提取图片内容的 Python 程序

&#x1f308;个人主页&#xff1a;易辰君-CSDN博客 &#x1f525; 系列专栏&#xff1a;https://blog.csdn.net/2401_86688088/category_12813012.html 目录 前言 一、安装依赖 二、下载安装chi_sim.traineddata文件 三、代码示例 前言 要编写一个提取图片内容的 Python …

程序设计语言基础:语言处理程序

语言处理程序 1、汇编程序1.1 汇编语言1.2 汇编程序 2、编译程序2.1 编译过程2.2 词法分析2.3 语法分析 3、解释程序 语言处理程序是一类系统软件的总称&#xff0c;其主要作用是将高级语言或汇编语言编写的程序翻译成某种机器语言程序&#xff0c;使程序可在计算机上运行。语言…

JVM(HotSpot):GC之垃圾标记阶段

文章目录 前言一、标记阶段算法1、引用计数法2、可达性分析算法&#xff08;JVM使用&#xff09; 二、4种引用1、 强引用2、软引用(SoftReference)3、弱引用(WeakHashMap)4、虚引用(PhantomReference) 三、代码案例1、 强引用2、软引用(SoftReference)3、弱引用(WeakHashMap) 前…

如何恢复U盘里格式化数据?别慌,有带图详细步骤!

U盘&#xff0c;这个小巧的存储神器&#xff0c;我们几乎天天都在用。但有时候&#xff0c;一不小心手滑&#xff0c;U盘就被格式化了&#xff0c;里面的东西好像全没了&#xff0c;别急&#xff0c;其实数据恢复没那么难。这篇文章就来告诉你&#xff0c;怎么把格式化的U盘里的…

Harmony Navigation的使用

router已经不推荐使用了,推荐使用Navigation实现页面路由。那么下面就看看Navigation的具体使用步骤: 1、使用Navigation替换主入口页面,并设置NavPathStack,使用NavPathStack执行跳转的逻辑。 @Entry @Component struct Index {pathStack: NavPathStack = new NavPathS…

整理—Redis

目录 Redis底层的数据结构 ZSet用过吗 Zset 底层是怎么实现的 跳表是怎么实现的&#xff1f; Redis为什么使用跳表而不是用B树? 压缩列表是怎么实现的&#xff1f; Redis 中的 listpack 哈希表是怎么扩容的&#xff1f; String 是使用什么存储的 Redis为什么快&#xf…

c语言基础程序——经典100道实例。

c语言基础程序——经典100道实例 001&#xff0c; 组无重复数字的数002&#xff0c;企业发放的奖金根据利润提成003&#xff0c;完全平方数004&#xff0c;判断当天是这一年的第几天005&#xff0c;三个数由小到大输出006&#xff0c;输出字母C图案007&#xff0c;特殊图案008&…

Nginx(Linux):服务器版本升级和新增模块

目录 1、概述2、使用Nginx服务信号完成Nginx升级2.1 备份当前版本的Nginx2.2 向服务器导入新的Nginx2.3 向服务器导入新的Nginx2.4 停止老版本Nginx 3、使用Nginx安装目录的make命令完成升级3.1 备份当前版本的Nginx3.2 向服务器导入新的Nginx3.3 执行更新命令 1、概述 如果想…

cisp考试费用多少?

在网络安全领域&#xff0c;CISP(注册信息安全专业人员)认证备受关注。对于许多想要在这个领域深入发展的人来说&#xff0c;了解 CISP 考试费用是他们迈出的第一步。那么&#xff0c;CISP 考试费用究竟是多少呢? 一、CISP 认证的重要性与价值 (一)行业认可度高 CISP 是由中国…

计算机网络:数据链路层 —— 扩展共享式以太网

文章目录 共享式以太网共享式以太网存在的问题在物理层扩展以太网扩展站点与集线器之间的距离扩展共享式以太网的覆盖范围和站点数量 在链路层扩展以太网网桥的主要结构网桥的基本工作原理透明网桥自学习和转发帧生成树协议STP 共享式以太网 共享式以太网是当今局域网中广泛采…

道路垃圾识别数据集 含pt模型界面 18类 共7542张图片,xml和txt标签都有;

道路垃圾识别数据集 含pt模型&界面 18类 共7542张图片&#xff0c;xml和txt标签都有&#xff1b; YOLO道路垃圾识别系统 系统概述 名称&#xff1a;YOLO道路垃圾识别系统 图片数量&#xff1a;7542张标注格式&#xff1a;XML和TXT&#xff08;支持YOLO格式&#xff09;类…

智诊小助手TF卡记录文件导出

若想将TF卡中记录的数据文件导出可按以下的流程进行配置&#xff1a; 点击主界面中的导出选项即可进入到 下图中TF卡应用界面 点击TF卡应用界面中“查看记录文件”的选项&#xff0c;进入导出文件界面。 点击“选择”进入勾选文件的界面 点击“导出”后&#xff0c;点…

Android Studio 的 Gradle 任务列表只显示测试任务

问题现象如下&#xff1a; 问题原因&#xff1a; 这是因为Android Studio 设置中勾选了屏蔽其他gradle任务的选项。 解决方法&#xff1a; File -> Settings -> Experimental 取消勾选Only include test tasks in the Gradle task list generated during Gradle Sync&…

【Golang】Gin框架:Go语言中的轻量级Web框架

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

aws(学习笔记第六课) AWS的虚拟私有,共有子网以及ACL,定义公网碉堡主机子网以及varnish反向代理

aws(学习笔记第六课) AWS的虚拟私有&#xff0c;共有子网以及ACL&#xff0c;定义公网碉堡主机子网以及varnish反向代理 学习内容&#xff1a; AWS的虚拟私有&#xff0c;共有子网以及ACL定义公网碉堡主机子网&#xff0c;私有子网和共有子网以及varnish反向代理 1. AWS的虚拟…

springboot051医院管理系统(论文+源码)_kaic

医院管理系统 摘要 随着信息互联网信息的飞速发展&#xff0c;医院也在创建着属于自己的管理系统。本文介绍了医院管理系统的开发全过程。通过分析企业对于医院管理系统的需求&#xff0c;创建了一个计算机管理医院管理系统的方案。文章介绍了医院管理系统的系统分析部分&#…

Gitlab 完全卸载–亲测可行

1、停止gitlab gitlab-ctl stop2.卸载gitlab&#xff08;注意这里写的是gitlab-ce&#xff09; rpm -e gitlab-ce 3、查看gitlab进程 ps aux | grep gitlab 4、杀掉第一个进程&#xff08;就是带有好多.............的进程&#xff09; 5、删除所有包含gitlab文件 find / …