Python_数据容器_集合set

news2024/11/23 20:41:43

一、集合set的定义

考虑使用集合的场景,通过已经学习的列表、元组、字符串三个数据容器特性来分析:

  • 列表可以修改、支持重复元素且有序

  • 元组、字符串、不可修改、支持重复元素且有序

局限就在于:它们支持重复元素

集合定义语法:

二、集合的特点

集合-->不支持重复元素(自带去重功能)且无序

三、集合的操作

集合的常用操作 -- 修改

由于集合无序,因此不支持:下标索引访问 也因此集合不是序列

但是集合和列表一样是支持修改的

1、添加新元素 add()

语法:集合.add(元素)  将指定元素添加到集合内

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

2、移除元素 remove()

语法:集合.remove(元素)  将指定元素从集合内移除

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

3、从集合中随机取出元素 pop()

语法:集合.pop(元素) 

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

4、取两个结果的差集 difference()

语法:集合1.difference(集合2)   即就是取出集合1有而集合2没有的

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

5、消除2个集合差集  difference_update()

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

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

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

6、两集合合并

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

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

结果:得到新集合 集合、集合2不变 

代码实操:

"""

演示数据容器集合的使用

"""

# 定义集合 不重复、无序

my_set = {"春天的熊","joker","blame",True,21,'blame'}

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)}")

# 添加新元素 add()

my_set.add('jizz')

my_set.add('joker') # 重复的不会添加

print(f"添加元素后结果:{my_set}")

# 移除元素 remove()

my_set.remove(True)

print(f"移除元素后结果:{my_set}")

# 随机取出一个元素 pop()

my_set = {"春天的熊","joker","blame",21}

element = my_set.pop()

print(f"随机取出的元素是:{element},取出后集合结果为{my_set}")

# 情空集合 clear()

my_set.clear()

print(f"集合被清空了,结果是{my_set}")

# 取两个集合的差集 集合1.difference(集合2) --取出集合1有而集合2没有的元素

set1 = {1,2,3}

set2 = {1,5,6}

set3 = set1.difference(set2)

print(f"set1={set1},set2={set2},取出差集后的结果:{set3}")

# 消除2个集合差集 difference_update()

set1 = {1,2,3}

set2 = {1,5,6}

set1.difference_update(set2)

print(f"消除差集后:set1={set1},set2={set2}")

# 2个集合合并为一个 union()

set1 = {1,2,3}

set2 = {1,5,6}

set3 = set1.union(set2)

print(f"set1={set1},set2={set2},合并后集后的结果:{set3}")

# 统计集合元素数量 len()

set1 = {1,2,3,'fu*k'}

num = len(set1)

print(f"{set1}中元素数量为:{num}")

集合的遍历:集合不支持下标索引,不能用while循环。可以用for循环

#集合的遍历 集合不支持下标索引,不能用while循环。可以用for循环

set1 = {1,2,3,'fu*k'}

for element in set1:

    print(f"{set1}中的元素:{element}")

集合练习:

# 有如下列表对象:

my_list = ['春天的熊','joker','bear','coding','python','sHSb','sHSb']

# 定义一个空集合

my_set = set()

# 通过for循环遍历列表

for element in my_list:

    my_set.add(element)

print(f"去重后集合对象:{my_set}")

# 在for循环中将列表中的元素添加至集合

# 最终得到去重后的集合额对象 打印输出

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

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

相关文章

KubeVirt with DPDK

发布于2022-11-25 15:52:32阅读 1020 Kubernetes优秀的架构设计,借助multus cni intel userspace cni 可以屏蔽了DPDK底层的复杂,让KubeVirt 支持DPDK变得比较容易。 因为 e2e验证 等原因,KubeVirt社区至今未加入对DPDK支持,本篇…

有用的CSS代码块

文章目录调试 DOM 元素的 border通用的网页样式调试 DOM 元素的 border 显示所有DOM元素的border,方便调试网页元素的相对布局。 * {outline: auto; }如何用javascript设置某个网页的style(复制以下代码到浏览器控制台执行即可)? // wuyujin1997 var …

PIC单片机5——串口 中断

//10M晶振 波特率9600 BRG8位波特率发生器 异步模式 #include "p18f458.h" #include "mydelay.h" #pragma config OSCHS,WDTOFF,LVPOFF,DEBUGON void PIC18F_High_isr(void);/*中断服务函数声明*/ void PIC18F_Low_isr(void); void usart_tx(unsigned ch…

基于javaweb房屋租赁管理系统的设计与实现

摘要 当今社会不管房屋出租、出售买卖是必不可少的,人们不管走到哪里都需要有一个温馨的家,有一个落脚之地,所以房源出租市场也是非常火爆!不管是房源出租公司或者是个人都需要一套完整的管理系统来掌握整个市场信息。针对这一需求…

观察者模式在spring中的应用

作者:王子源 1 观察者模式简介 1.1 定义 指多个对象间存在一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。这种模式有时又称作发布-订阅模式、模型-视图模式,它是对象行为型模式。 …

离散卡尔曼滤波实现

离散卡尔曼滤波基本理论 卡尔曼预报器、平滑器可以参考之前的博客:(2条消息) 卡尔曼滤波器_KPer_Yang的博客-CSDN博客 下面贴上一张图1,很直观:分成时间更新和测量更新两步,其中的KKK和PPP有可能随着时间推移变成常数&#xff0…

STM32实战总结:HAL之RTC

RTC基础知识参考: 51单片机内部外设:实时时钟(SPI)_路溪非溪的博客-CSDN博客 STM32中的RTC 51单片机通常是外置的RTC芯片如DS1302,那么STM32的RTC是什么情况呢? STM32芯片自带RTC,因此不须像其他MCU需外接RTC模块。 先…

年末盘点Android 过去一年与未来的一个走势~

随着Android的发展,有些人对Android未来感到茫然,不少人可能会产生这样的疑惑:“从事Android是不是没有前途,Android开发还有什么值得学?“这类话题一直让大家争论不休,它并没有一个确切、唯一的标准答案&a…

中介者模式

思考中介者模式 当多个类(对象)耦合严重时,通过中介者模式创建一个中介者,多个类不直接交互了,变成和中介者进行交互,松散耦合 1.中介者模式的本质 中介者模式的本质:封装交互。 中介者模式的目的&#xff…

关于无感刷新Token,我是这样子做的

本文正在参加「金石计划 . 瓜分6万现金大奖」 什么是JWT JWT是全称是JSON WEB TOKEN,是一个开放标准,用于将各方数据信息作为JSON格式进行对象传递,可以对数据进行可选的数字加密,可使用RSA或ECDSA进行公钥/私钥签名。 使用场景…

WPSpell将拼写检查添加到VCL应用程序

WPSpell将拼写检查添加到VCL应用程序 WPSpell包括键入功能时的拼写。拼写错误的单词带有下划线,可以使用上下文菜单进行更正。它还包括一个传统的拼写检查对话框,并支持多个词典。WPSpell特别适合与WPTools一起使用。 WPSpell功能 键入时进行拼写检查。 …

1-FreeRTOS入门指南

本专栏是根据官方提供的文档进行FreeRTOS的各个功能函数的说明,以及函数的使用 本专栏不涉及动手操作,只是对原理进行说明,FreeRTOS基础知识篇更新完成会对如何在开发板上进行上手实战操作。 这里不会对比其他RTOS的优缺点,因为每…

2、Redis中简单动态字符串的简介,也就是Redis中的键和值的字符串底层表达

简介 首先在Redis中,没有直接使用C语言传统字符串表示(以空字符结尾的字符数组,以下简称C字符串),而是自己构建了一种名为简单动态字符串(simple dynamic string,SDS)的抽象类型(可以简单的理解为Java中的String 类),并且将SDS用作Redis的默…

动态规划算法(1)

认识动态规划 动态规划的求解思路: 1. 把一个问题分解成若干个子问题 2. 将中间结果保存以避免重复计算 基本步骤: 1. 找出最优解的性质,然后刻画结构特征 (找规律) 2. 最优解(最好的解决方案 定义) 循环(递归) 3. 以…

我与梅西粉丝们的世界杯观球日常

世界杯 ⚽️ 期间,我与其他的梅西粉丝在某 APP 里建了个梅粉聊天群,群内人数上万人,大家一起讨论赛事热点,可谓热火朝天,此起彼伏,这是四年一度的狂欢,虽值冬季,但热情不减。 “阿根…

配置设备远程管理—eNSP

案例:给路由器配置远程管理,使一台路由器远程管理另一台。 所需设备:两台路由器,一根网线 图示 一、给两台设备配置IP地址 AR1(以下命令) a. sy b. int g0/0/0 c. ip add 1.1.1.1 24AR2 a. sy b. int g0/0…

十分钟学完简单工厂,普通工厂,抽象工厂

快速学习简单工厂,普通工厂,抽象工厂前言:产品等级和产品族工厂模式作用简单工厂模式uml代码优缺点普通工厂模式uml代码优缺点抽象工厂模式uml代码优缺点前言:产品等级和产品族 在学习工厂模式之前,先得了解一下产品等…

Redis实践

一、持久化 Redis 的数据 全部存储 在 内存 中,如果 突然宕机,数据就会全部丢失,因此必须有一套机制来保证 Redis 的数据不会因为故障而丢失,这种机制就是 Redis 的 持久化机制,它会将内存中的数据库状态 保存到磁盘 …

Spring——AOP原理及流程详解

AOP原理及流程详解一、AOP结构介绍Pointcut通知原理连接点拦截器二、Bean介入点EnableAspectJAutoProxyAspectJAutoProxyRegistrarAnnotationAwareAspectJAutoProxyCreatorAbstractAutoProxyCreator实例前执行初始化后执行循环依赖会调用总结三、处理切面获取所有切面其下通知方…

国内饮料行业数据浅析

大家好,这里是小安说网控。 饮料一直深得年轻人的宠爱,主要消费品类为饮用水、碳酸饮料、奶制品、气泡水等。刚刚过去的十月份,我国饮料产量当期值1199.6万吨,同比下降6.1%;今年1-10月份,饮料产量累计值157…