Python学习-----无序序列2.0(集合的创建、添加、删除以及运算)

news2025/1/17 17:54:27

 

目录

前言:

什么是集合

集合的三大特性 

 1.集合的创建

(1)直接创建

(2)强制转换

2.集合的添加

(1)add()函数

(2)update() 函数

3.集合元素的删除

(1)remove() 函数

(2)discard() 函数

4.集合的运算

5.集合的应用----对列表去重


前言:

        上一期讲了无序序列中的字典相关操作Python学习-----无序序列1.0(字典的创建、查看、添加、修改、删除/替换)_守约斯维奇的博客-CSDN博客        这一期来讲讲无序序列中的集合(set)的操作,包括创建、添加、删除已经集合之间的运算。

什么是集合

和数学中的集合概念一样,用来保存不重复的元素,即集合中的元素都是唯一的,互不相(高中都学过集合了,懂的都懂)

集合的三大特性 

无序性

唯一性

互异性

 1.集合的创建

(1)直接创建

格式:

集合名 = {元素,元素,元素……}

注意事项:集合是可变的(可以修改、添加、删除等等),但是里面的元素性质是不可变的,所以集合里面的元素不可以是列表类型、字典类型或者集合类型

示例1:(集合的无序性) 

s={1,'qq',1.9,False}
print(s)
#输出结果:{'qq', 1, 1.9, False}

集合本身是无序性的,所以输出结果也是没有按照顺序的,是随机顺序 

示例2:(集合的互异性和唯一性) 

s={1,1,2,2,2,1.6,False}
print(s)
#输出结果:{False, 1, 2, 1.6}

这里面的1和2栋出现了重复,但是输出结果都是只保留了一个,这也是集合的互异性和唯一性 

(2)强制转换

这里有一个问题,如果我想创建一个空集合怎么办,前面说了创建空字典直接 d = {},就行了,但是集合可不能用花括号,所以这里必须用强制转换set() 函数来实现

示例1: 

#创建空字典 d={}

#创建空集合
s = set()
print(s,type(s))
#输出结果:set() <class 'set'>

 示例2:

#强制转换把其他类型转换为集合
li=[1,2,5,3.5,False,(1,9.6)]
print(li,type(li))
#输出结果:[1, 2, 5, 3.5, False, (1, 9.6)] <class 'list'>
s=set(li)
print(s,type(s))
#输出结果:{False, 1, 2, 3.5, 5, (1, 9.6)} <class 'set'>

2.集合的添加

(1)add()函数

格式:

集合名.add(元素)

添加方式:一次只能添加一个元素

集合本身是无序序列的,所以添加的元素的位置也是随机的放入一般都是用add() 函数去添加

示例1: 

s = {1,2,3,3.14}
print(s)
s.add(False)
s.add('集合')
print(s)

 示例2:

#通过循环来实现添加多个元素
s = {1,2,3,3.14}
q = {'瓦达西瓦','欧尼酱','空你几哇'}
for i in q:
    s.add(i)
print(s)
#输出结果:{1, 2, 3.14, 3, '空你几哇', '欧尼酱', '瓦达西瓦'}

(2)update() 函数

格式:

集合.update([元素])

添加方式:这个函数可以添加单个元素,也可以一次性添加多个元素(添加多个元素比add() 函数简单,不需要用到循环)

注意事项:之前在字典的添加也用到了这个函数,但是添加字典是用花括号{}的,而添加集合里面是用中括号[ ]  的

s = {'李信','李华','李白'}
s.update(['瑶','澜'])
print(s)
#输出结果:{'瑶', '李白', '澜', '李信', '李华'}

3.集合元素的删除

(1)remove() 函数

格式:

集合名.remove(元素)

注意:一次性只可以移除一个元素,当元素不存在的时候将会报错

s = {'李信','李华','李白','瑶'}
s.remove('李华')
print(s)
#输出结果:{'瑶', '李信', '李白'}

(2)discard() 函数

格式:

集合名.discard(元素)

注意: 当元素不存在的时候 不会报错(这也是与remove函数的区别)

s = {'李信','李华','李白','瑶'}
s.discard('瑶')
print(s)
#输出结果:{'李华', '李白', '李信'}

4.集合的运算

符号含义
&交集,获得两个集合的公共元素
|并集,获得两个集合的全部元素
-差集,获得前面集合独有的元素
^对称差集,获得两个几个除公共元素外的多有元素(并集-交集)

 

 

 

 

 集合的运算跟高中我们学的基本上是一模一样的,交集、并集、补集。我不多解释了,看例题吧。

a = {1, 2, 4, 5, 6}
b = {1, 3, 5, 7}
print(a-b) #a对b的差集  a除去a与b重复的部分
print(b-a) #b对a的差集  b除去a与b重复的部分
print(b&a) #交集--a与b重复的部分
print(b|a) #并集--a与b的全部
print(a^b) # 等效于(a-b)|(b-a)
print((a-b)|(b-a)) 

 集合运算很简单了,就不多讲了,多试试几个就行了

5.集合的应用----对列表去重

集合是有互异性的,唯一性的,如果出现重复的话,那么集合会舍弃重复的部分,只保留一个,所以我们可以通过集合的性质来实现去重,就以列表为例:

li=[1,1,5,5,'蔡徐坤',False]
print(li)
li=set(li)#转换为集合
print(li)
li=list(li)#转换回列表类型
print(li)

 

 OK,这一期就到这里了,下课!!!

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

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

相关文章

澳大利亚访问学者申请流程总结

澳大利亚访问学者申请需要注意些什么&#xff1f;下面知识人网小编整理澳大利亚访问学者申请流程总结。1、取得wsk英语成绩&#xff0c;现在都是先买票再上车了。2、联系外导&#xff0c;申请意向接收函(email)。3、向留学基金委CSC提出申请。4、获批后&#xff0c;申请正式邀请…

Python 循环语句

Python的循环语句&#xff0c;程序在一般情况下是按顺序执行的。编程语言提供了各种控制结构&#xff0c;允许更复杂的执行路径。循环语句允许我们执行一个语句或语句组多次&#xff0c;下面是在大多数编程语言中的循环语句的一般形式&#xff1a;Python 提供了 for 循环和 whi…

【C++】类与对象理解和学习(上)

专栏放在【C知识总结】&#xff0c;会持续更新&#xff0c;期待支持&#x1f339;类是什么&#xff1f;类是对对象进行描述的&#xff0c;是一个模型一样的东西&#xff0c;限定了类有哪些成员&#xff0c;定义出一个类并没有分配实际的内存空间来存储它&#xff08;实例化后才…

视觉感知(二):车位线检测

1. 简介 本期为大家带来车位线检测相关知识点,以及算法工程落地的全流程演示。车位线检测是自动泊车领域必不可缺的一环,顾名思义就是采用环视鱼眼相机对路面上的车位线进行检测,从而识别出车位进行泊车。 较为常规的做法是使用四颗鱼眼相机环视拼接然后在鸟瞰图上做停车位…

如何利用状态机编程实现启保停控制(含Stateflow模型介绍)

状态机的介绍这里不再赘述,概念也很简单没有过多的复杂理论。下面我们直接给出具体实现过程。有限自动状态机详细讲解请参看下面的文章链接: PLC面向对象编程系列之有限状态机(FSM)详解_RXXW_Dor的博客-CSDN博客_有限状态机 plc实现编写PLC控制机器动作类程序时,当分支比较…

【自然语言处理】主题建模:BERTopic(实战篇)

主题建模&#xff1a;BERTopic&#xff08;实战篇&#xff09;BERTopic 是基于深度学习的一种主题建模方法。201820182018 年底&#xff0c;Devlinetal.Devlin\ et\ al.Devlin et al. 提出了 Bidirectional Encoder Representations from Transformers (BERT)[1]^{[1]}[1]。BER…

web自动化测试入门篇05——元素定位的配置管理

&#x1f60f;作者简介&#xff1a;博主是一位测试管理者&#xff0c;同时也是一名对外企业兼职讲师。 &#x1f4e1;主页地址&#xff1a;【Austin_zhai】 &#x1f646;目的与景愿&#xff1a;旨在于能帮助更多的测试行业人员提升软硬技能&#xff0c;分享行业相关最新信息。…

Window 安装 Docker

1.开启Hyper-v 2.确定后重启 3.双击安装包进行安装 4.安装完后系统重启 5.打开Docker软件提示&#xff1a;按下图操作后重启Docker 6.设置docker镜像仓库 { “experimental”: false, “features”: { “buildkit”: true }, “registry-mirrors”: [ “https://docker.mirr…

界面组件Telerik UI for WPF R1 2023——让导航栏变得更智能!

Telerik UI for WPF拥有超过100个控件来创建美观、高性能的桌面应用程序&#xff0c;同时还能快速构建企业级办公WPF应用程序。UI for WPF支持MVVM、触摸等&#xff0c;创建的应用程序可靠且结构良好&#xff0c;非常容易维护&#xff0c;其直观的API将无缝地集成Visual Studio…

大数据Kylin(一):基础概念和Kylin简介

文章目录 基础概念和Kylin简介 一、​​​​​​​OLTP与OLAP 1、​​​​​​​​​​​​​​OLTP 2、​​​​​​​​​​​​​​OLAP 3、​​​​​​​​​​​​​​OLTP与OLAP的关系 二、​​​​​​​​​​​​​​数据分析模型 1、星型模型 2、雪花模型 …

推进行业生态发展完善,中国信通院第八批RPA评测工作正式启动

随着人工智能、云计算、大数据等新兴数字技术的高速发展&#xff0c;数字劳动力应用实践步伐加快&#xff0c;以数字生产力、数字创造力为基础的数字经济占比逐年上升。近年来&#xff0c;机器人流程自动化&#xff08;Robotic Process Automation&#xff0c;RPA&#xff09;成…

【GPLT 二阶题目集】L2-012 关于堆的判断

将一系列给定数字顺序插入一个初始为空的小顶堆H[]。随后判断一系列相关命题是否为真。命题分下列几种&#xff1a; x is the root&#xff1a;x是根结点&#xff1b; x and y are siblings&#xff1a;x和y是兄弟结点&#xff1b; x is the parent of y&#xff1a;x是y的父结…

MySQL数据库05——数据的查询(SELECT)

SQL强大的在于它的查询&#xff0c;查询是最重要的操作之一。 查询最基础的语法 查看student表里面全部内容&#xff1a; SELECT * FROM student整体语法格式 主要子句的语法格式归纳如下&#xff1a; SELECT [DISTINCT | ALL] select_list FROM table_sour…

MyBatis案例 | 使用映射配置文件实现CRUD操作——添加数据

本专栏主要是记录学习完JavaSE后学习JavaWeb部分的一些知识点总结以及遇到的一些问题等&#xff0c;如果刚开始学习Java的小伙伴可以点击下方连接查看专栏 本专栏地址&#xff1a;&#x1f525;JavaWeb Java入门篇&#xff1a; &#x1f525;Java基础学习篇 Java进阶学习篇&…

【GPLT 二阶题目集】L2-044 大众情人

人与人之间总有一点距离感。我们假定两个人之间的亲密程度跟他们之间的距离感成反比&#xff0c;并且距离感是单向的。例如小蓝对小红患了单相思&#xff0c;从小蓝的眼中看去&#xff0c;他和小红之间的距离为 1&#xff0c;只差一层窗户纸&#xff1b;但在小红的眼里&#xf…

肿瘤生信科研:绘制突变景观图(mutation landscape)

肿瘤生信科研经常会画突变的景观图&#xff0c;或者叫瀑布图&#xff0c;用 maftools 包可以实现简单的 Landscape 图&#xff0c;但是当图形比较复杂时&#xff0c;maftools 就不能胜任了&#xff0c;可以用 ComplexHeatmap 包来画。实际上&#xff0c;Landscape 图是热图的一…

ubuntu clion从0开始搭建一个风格转换ONNX推理网络 opencv cuda::dnn::net

系统搭建 系统搭建 OpenCV的安装 cmake sudo apt-get install cmake其他环境以来 sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff5.dev libswscale-dev libjasper-dev 不安装会报这个错误 OpenCV(4.6.0) /hom…

LeetCode刷题系列 -- 48. 旋转图像

给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。你必须在 原地 旋转图像&#xff0c;这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。示例 1&#xff1a;输入&#xff1a;matrix [[1,2,3],[4,5,6],[7,8,9]]输出&#…

【MySQL Shell】8.8 InnoDB ClusterSet 的紧急故障切换

紧急故障切换会将选定的副本集群放入 InnoDB ClusterSet 部署的主 InnoDB 集群中。当当前主集群不工作或无法联系时&#xff0c;可以使用此过程。在紧急故障切换过程中&#xff0c;无法确保数据一致性&#xff0c;因此为了安全起见&#xff0c;在故障切换过程中将原始主集群标记…

openHarmony的UI开发

自适应布局 拉伸能力 ​ Blank在容器主轴方向上&#xff0c;空白填充组件具有自动填充容器空余部分的能力。仅当父组件为Row/Column时生效&#xff0c;即是线性布局。这样便可以在两个固定宽度或高度的组件中间添加一个Blank()&#xff0c;将剩余空间占满&#xff0c;从而实现…