数据容器:set(集合) 更新啦!

数据容器:set(集合)

1.集合的定义方式

{元素, 元素, 元素}

# 定义集合
my_set = {"欣欣向荣", "嘉嘉", "red", "欣欣向荣", "嘉嘉", "red", "欣欣向荣", "嘉嘉", "red"}
my_set_empty = set()  # 定义空集合
print(f"my_set的内容是:{my_set}, 类型是:{type(my_set)}")
print(f"my_set_empty的内容是:{my_set_empty}, 类型是:{type(my_set_empty)}")my_set的内容是:{'欣欣向荣', 'red', '嘉嘉'}, 类型是:<class 'set'>
my_set_empty的内容是:set(), 类型是:<class 'set'>

2.集合的常用操作

·添加新元素

语法:集合.add(元素)

结果:集合本身被修改,添加了新元素

# 添加新元素
my_set.add("green")
print(f"my_set添加新元素后结果是:{my_set}")my_set添加新元素后结果是:{'欣欣向荣', 'red', '嘉嘉', 'green'}

·移除元素

语法:集合.remove(元素)

结果:集合本身被修改,移除了新元素

# 移除元素
my_set = {"欣欣向荣", "嘉嘉", "red", "欣欣向荣", "嘉嘉", "red", "欣欣向荣", "嘉嘉", "red"}
my_set.remove("red")
print(f"my_set移除red结果是:{my_set}")my_set移除red结果是:{'嘉嘉', '欣欣向荣'}

·从集合中随机取出一个元素

语法:集合.pop()

结果:会得到一个元素的结果。同时集合本身会修改,元素被移除

# 随机取出一个元素
my_set = {"欣欣向荣", "嘉嘉", "red"}
element = my_set.pop()
print(f"集合被取出元素是:{element}, 取出元素后:{my_set}")集合被取出元素是:欣欣向荣,取出元素后:{'red', '嘉嘉'}

·清空集合

语法:集合.clear()

# 清空集合
my_set = {"欣欣向荣", "嘉嘉", "red"}
my_set.clear()
print(f"集合被清空了,结果是:{my_set}")集合被清空了,结果是:set()

·取出两个集合的差集

语法:集合1.difference(集合2)

结果:得到一个新集合,集合1和集合2不变

# print(f"集合被清空了,结果是:{my_set}")
# 取两个集合的差集
set1 = {1, 2, 3}
set2 = {1, 5, 6}
set3 = set1.difference(set2)
print(f"取出差集的结果是:{set3},原有set1的内容:{set1},原有set2的内容是:{set2}")取出差集的结果是:{2, 3},原有set1的内容:{1, 2, 3},原有set2的内容是:{1, 5, 6}

·消除两个集合的差集

语法:集合1.difference_update(集合2)

功能:对比集合1和集合2,在集合1内,删除和集合2相同的元素

结果:集合1被修改,集合2不变

# 取两个集合的差集
set1 = {1, 2, 3}
set2 = {1, 5, 6}
set1.difference_update(set2)
print(f"消除差集后集合1结果:{set1},消除差集后集合2结果:{set2}")消除差集后集合1结果:{2, 3},消除差集后集合2结果:{1, 5, 6}

·2个集合合并

语法:集合1.union(集合2)

功能:将集合1和集合2组成新集合

结果:得到新集合,集合1和2不变

# 2个集合合并
set1 = {1, 2, 3}
set2 = {1, 5, 6}
set3 = set1.union(set2)
print(f"2个集合合并结果是:{set3},合并后集合1:{set1},合并后集合2:{set2}")2个集合合并结果是:{1, 2, 3, 5, 6},合并后集合1:{1, 2, 3},合并后集合2:{1, 5, 6}

·统计集合的元素数量len()

# 统计集合的元素数量len()
set1 = {1, 2, 3, 4, 5}
num = len(set1)
print(f"集合内的元素数量有:{num}个")集合内的元素数量有:5个# 集合去重,统计后依旧是5个
set1 = {1, 2, 3, 4, 5, 1, 2, 3, 4, 5}
num = len(set1)
print(f"集合内的元素数量有:{num}个")集合内的元素数量有:5个 

·集合的遍历

# 集合的遍历 !集合不支持下标索引,所以不能用while循环,可以用for循环
set1 = {1, 2, 3, 4, 5}
for element in set1:print(f"集合的元素有:{element}")集合的元素有:1
集合的元素有:2
集合的元素有:3
集合的元素有:4
集合的元素有:5

3.集合的特点

·可以容纳多个数据

·可以容纳不同类型的数据(混装)

·数据是无序存储的(不支持下标索引)

·不允许重复数据存在

·可以修改(增加或删除元素等)

·支持for循环

完结🎉 继续更新!加个关注收藏一下叭~

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

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

相关文章

Spring BeanPostProcessor的前置魔法:揭秘与启迪

1. 引言 Spring框架的BeanPostProcessor是一个强大的扩展点&#xff0c;允许开发者在Spring IoC容器实例化、配置和初始化bean前后插入自定义逻辑。其中&#xff0c;前置方法postProcessBeforeInitialization是BeanPostProcessor接口中的一个重要方法&#xff0c;它在bean的初…

数据库中的视图:定义、作用及使用场景

在数据库的世界中&#xff0c;视图&#xff08;View&#xff09;是一个虚拟的表&#xff0c;其内容由查询定义。视图同真实的表一样&#xff0c;包含一系列带有名称的列和行数据。但是&#xff0c;视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询…

读《营销管理》之三大市场结果

由于四大市场力量的存在&#xff0c;有形无形的改变着世界&#xff0c;在新的营销现实中&#xff0c;消费者、公司和竞争环境都经历了显著的变化&#xff0c;这些变化赋予了他们新的能力&#xff0c;并改变了他们互动的方式。读《营销管理》之四大市场力量-CSDN博客以下是详细解…

性能猛兽:OrangePi Kunpeng Pro评测!

1.引言 随着物联网和嵌入式系统的不断发展&#xff0c;对于性能强大、资源消耗低的单板计算机的需求也日益增加。在这个快节奏的技术时代&#xff0c;单板计算机已成为各种应用场景中不可或缺的组成部分&#xff0c;从家庭娱乐到工业自动化&#xff0c;再到科学研究&#xff0…

差分曼彻斯特编码详解

这是一种双向码&#xff0c;和曼彻斯特编码不同的是&#xff0c;这种码元中间的电平转换边只作为定时信号&#xff0c;不表示数据。数据的表示在于每一位开始处是否有电平转换&#xff1a;有电平转换则表示0&#xff0c;无则表示1。然后这就出现一个问题&#xff0c;很多小伙伴…

Vue2源码解析-生命周期

两个文件&#xff0c;一个html一个js <body><div id"app"></div> </body> <script src"./Vue.js"></script> <script>new Vue({el: #app,data: {str: "你好"},beforeCreate() {console.log(beforeCr…

App Inventor 2 低功耗蓝牙BLE 两种通信方式:扫描和广播

低功耗蓝牙&#xff0c;也称为蓝牙 LE 或简称 BLE&#xff0c;是一种类似于经典蓝牙的新通信协议&#xff0c;不同之处在于它旨在消耗更少的功耗&#xff0c;同时保持可比的功能。 因此&#xff0c;低功耗蓝牙是与耗电资源有限的物联网设备进行通信的首选。BluetoothLE 扩展需…

2023年简单易用的透明加密软件--安秉网盾企业数据防泄密方案

随着移动互联网的兴起&#xff0c;企业对对网络安全的需求日益增加&#xff0c;透明加密软件技术也是近些年企业对文件图纸防泄密的主要解决技术方案。但是在广大企业在使用透明加密技术做防泄密时因为自身对透明加密技术的不是很深入的了解&#xff0c;造成企业在使用过程中还…

DiffBIR论文阅读笔记

这篇是董超老师通讯作者的一篇盲图像修复的论文&#xff0c;目前好像没看到发表在哪个会议期刊&#xff0c;应该是还在投&#xff0c;这个是arxiv版本&#xff0c;代码倒是开源了。本文所指的BIR并不是一个single模型对任何未知图像degradation都能处理&#xff0c;而是用同一个…

数据结构(十)图

文章目录 图的简介图的定义图的结构图的分类无向图有向图带权图&#xff08;Wighted Graph&#xff09; 图的存储邻接矩阵&#xff08;Adjacency Matrix&#xff09;邻接表代码实现 图的遍历深度优先搜索&#xff08;DFS&#xff0c;Depth Fisrt Search&#xff09;遍历抖索过程…

【搜索方法推荐】高效信息检索方法和实用网站推荐

博主未授权任何人或组织机构转载博主任何原创文章&#xff0c;感谢各位对原创的支持&#xff01; 博主链接 本人就职于国际知名终端厂商&#xff0c;负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作&#xff0c;目前牵头6G算力网络技术标准研究。 博客…

同时执行多个python脚本扫描,报如下错误,原因为文件越大读取到内存占用内存越多。

killed nohup python $file unable to fork process cannot allocate memory ls: error while loading shared libraries: libdl.so.2 failed to map segment from shared object cannot allocate memory python进程被系统或者某个用户通过 kill 命令强制终止了

Springboot 实战运用

一&#xff0c;基本配置 1&#xff0c;pom文件配置介绍 1.1继承 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.5.2</version><relativePath/> <…

SAP_MM_组织数据

在SAP的物料管理模块&#xff08;MM&#xff0c;Materials Management&#xff09;中&#xff0c;组织数据&#xff08;Organizational Data&#xff09;是系统配置的基础结构&#xff0c;用来支持业务流程的高效运行。组织数据定义了不同业务操作的层级和关系&#xff0c;确保…

ubuntu下载离线软件包及依赖

目录 一、前言 二、正文 1.准备环境 2.开始下载 3.后续工作 三、总结 一、前言 由于给客户提供的设备机不允许上网&#xff0c;那么所有待安装的软件包及依赖库都需要提前下载好&#xff0c;然后通过局域网传过去再安装。 另外&#xff0c;软件包可能还依赖其他的库&…

C++模拟实现stack容器适配器

源代码&#xff08;CSTL库中的stack容器适配器是通过deque实现的&#xff0c;这里使用vector容器实现&#xff09; #include <iostream> #include <vector> #include <list> using namespace std;namespace mystack {//栈的设计采用适配器模式&#xff1a;即…

Mac安装tomcat

代码 brew install tomcat 运行结果如下&#xff1a; 如果要启动输入&#xff1a; brew services start tomcat

新书推荐—华为HCIA路由交换技术实战

新书推荐—华为HCIA路由交换技术实战 由HCIE认证讲师、技术能手、ICT大赛优秀指导教师、教学名师、国家规划教材作者联袂编撰&#xff0c;让学习不再是“硬”茬&#xff0c;而是“嗨”起来&#xff01; 《华为HCIA路由交换技术实战》 作者黄君羡组编正月十六工作室书号978-7-12…

半个月获邀请函|在读博士公派新加坡南洋理工大学联合培养

J同学计划先申报CSC联培博士&#xff0c;如若获批&#xff0c;再走本校的联培资助项目。我们仅用半个月时间&#xff0c;就为其申请到新加坡南洋理工大学&#xff0c;因导师接收名额有限制&#xff0c;其又热心推荐了另一位指导导师&#xff0c;最终J同学如愿获得学校资助出国联…

职校老师的工资待遇怎么样

工资水平一直是教师们关注的焦点&#xff0c;毕竟&#xff0c;工资不仅关系到个人的生活品质&#xff0c;还影响着教师的职业满意度和工作动力。职校教师的工资待遇究竟是怎样的呢&#xff1f; 职校教师的工资水平受多种因素影响&#xff0c;包括地区、学校类型、个人资历和教学…