Python的集合(set)类型、None类型.....

基于simulink的多能源系统协同控制的复杂场景实例:氢燃料电池+锂电池混合动力电动汽车能量管理仿真 本文介绍了基于Simulink的氢燃料电池与锂电池混合动力电动汽车能量管理系统的建模与仿真方法。系统包含驾驶循环输入、氢燃料电池、锂电池、能量管理和电机驱动等模块,通过Simulink实现各模块的协同控制。文章详细说明了从模型创建到性能评估的完整流程,包括驾驶循环输入设置、燃料电池和锂电池子系统建模、能量管理策略设计等关键步骤。该仿真模型可验证不同工况下的系统响应和能量利用效率,为优化混合动力汽车的能量管理策略提供有效工具。通过引入更复杂的物理细节和环境因素,可进一步提升模型的实用性和准确性。 阅读详情

Day07 数据类型(下)

1.集合(set)

集合是一个无序、可变、不允许重复的容器

1.1 集合的定义

v = {1,2,3,"GG"}
  • 无序,无法通过索引获取元素值
  • 可变,可以添加和删除元素
v1 = {1,2,3,5}
v1.add(6)
print(v1)
#{1, 2, 3, 5, 6}
  • 不允许数据重复
v1 = {1,2,3,5}
v1.add(2)
print(v1)
#{1, 2, 3, 5}

一般什么时候用集合呢?

就是想要维护一大堆不重复的数据时,就可以用它。比如:做爬虫去网上找图片的链接,为了避免链接重复,可以选择用集合去存储链接地址。

  • 定义空集合时,只能使用v = set(),不能使用v={}(这样是定义一个空字典)

1.2 独有功能

1.2.1 添加

v1 = {1,2,3,5}
v1.add(2)
print(v1)
#{1, 2, 3, 5, 6}
data = set()
data.add("aa")
data.add(1)
data.add(456)
print(data)

#{456, 1, 'aa'}

1.2.2 删除

data = {"aa",456,1,"BB"}
data.remove("aa")
data.discard("BB")
print(data)

#{456, 1}

1.2.3 交集

d1 = {"AA","BB","CC","DD","GG"}
d2 = {"BB","DD","GG","FF","HH"}

d3 = d1 & d2  #取交集,方式一
d4 = d1.intersection(d2)#取交集,方式二
print(d3)

#{'BB', 'DD', 'GG'}

1.2.4 并集

d1 = {"AA","BB","CC","DD","GG"}
d2 = {"BB","DD","GG","FF","HH"}

d3 = d1 | d2#取并集,方式一
d4 = d1.union(d2) #取并集,方式二
print(d3)
#{'GG', 'BB', 'HH', 'CC', 'FF', 'DD', 'AA'}

1.2.5 差集

d1 = {"AA","BB","CC","DD","GG"}
d2 = {"BB","DD","GG","FF","HH"}

d3 = d1 - d2#d1中有d2中没有,方式一
print(d3)
{'CC', 'AA'}
d4 = d1.difference(d2)#d1中有d2中没有,方式二
print(d4)
{'CC', 'AA'}
d5 = d2 - d1#d2中有d1中没有,方式一
print(d5)
{'FF', 'HH'}
d6 = d2.difference(d1)#d2中有d1中没有,方式二
print(d6)
{'FF', 'HH'}

1.3 公共功能

1.3.1 减,计算差集

d1 = {"AA","BB","CC","DD","GG"}
d2 = {"BB","DD","GG","FF","HH"}

d3 = d1 - d2
d4 = d2 - d1
print(d3)
#{'CC', 'AA'}
#{'HH', 'FF'}

1.3.2 &,计算交集

d1 = {"AA","BB","CC","DD","GG"}
d2 = {"BB","DD","GG","FF","HH"}

d3 = d1 & d2 

1.3.3 |,计算并集

d1 = {"AA","BB","CC","DD","GG"}
d2 = {"BB","DD","GG","FF","HH"}

d3 = d1 | d2

1.3.4 长度

d1 = {"AA","BB","CC","DD","GG"}
print(len(d1))

1.3.5 for 循环

d1 = {"AA","BB","CC","DD","GG"}

for item in d1:
    print(item)

#AA
#BB
#GG
#DD
#CC

1.4 转换

  • 其他类型如果想要转换为集合类型,可以通过set进行转换,并且如果数据有重复自动剔除。
  • int/list/tuple/dict都可以转换为集合类型。
v = "AA"
v1 = set(v)
print(v1)
v = [11,22,33,44,55,66]

v1 = set(v)
  • 集合也是去重的一个有效手段

1.5 其他

1.5.1 集合的存储原理

在这里插入图片描述

1.5.2 元素必须可哈希

  • 集合的元素必须是可哈希的值,内部通过通过哈希函数把值转换成一个数字。

  • 目前可哈希的数据类型:int、bool、str、tuple,而list、set是不可哈希的。

  • 转换成功

v = [11,22,33,44,55,66]

v1 = set(v)
  • 转换失败
li = [1,2,3,4,[1,2,3],44]

li1 = set(li)

#TypeError: unhashable type: 'list'

1.5.3 查找速度特别快

因存储原理特殊,集合的查找效率非常高(数据量大了才明显)

  • 效率低
user_list = ["AA", "BB", "GGBoy"]
if "BB" in user_list:
    print("在")
else:
    print("不在")

user_tuple = ("AA", "BB", "GGBoy")
if "GGBoy" in user_tuple:
    print("在")
else:
    print("不在")
  • 效率高
user_list = {"AA", "BB", "GGBoy"}
if "BB" in user_list:
    print("在")
else:
    print("不在")

1.5.4 对比和嵌套

类型是否可变是否有序元素要求是否可哈希转换定义空
list是是无否list()v = []或v = list()
tuple否是无是tuple()v = () 或 v = tuple()
set是否可哈希否set()v = set()

练习题

1. 写代码实现

# 循环提示用户输入,如果输入值在v1中存在,则追加到v2中,如果v1中不存在,则添加到v1中。(如果输入x或n则停止循环)
v1 = {'AA', 'BB', 'CC'}
v2 = []

while True:
    name = input("请输入姓名:")
    if name in v1:
        v2.append(name)
    elif name.upper() == "N":

        print(v1)
        print(v2)
        print("ending")
        break
    else:
        v1.add(name)

2.下面哪些值不能做集合的元素


[11,22,33]#不能
[]#不能
(123)
(1,2,3)#不能

3.模拟用户信息录入程序,已录入则不再创建。

user_info_set = set()
while True:
    name = input("请输入姓名:")
    age = input("请输入年龄:")
    item = (name, age,)
    if item in user_info_set:
        print("该用户已录入")
    else:
        user_info_set.add(item)

4.给列表去重

v1 = [11,22,33,4,55,11,22,55,5,4]
v2 = set(v1)
print(v2)
#{33, 4, 5, 11, 22, 55}

None 类型

Python的数据类型中有一个特殊的值None,意味着这个值啥都不是或表示空。相当于其他语言中 nu11作用一样。在一定程度上可以帮助我们去节省内存。例如:

v1 = None
v3 = []
v4 = []

v3 = [11,22,33,44]
v4 = [111,22,43]

目前所有转可以换为False布尔值的值有:

0
""
[] or list()
() or tuple()
set()
None
Graphviz安装及使用:决策树可视化 Python大数据分析与机器学习学习笔记 Graphviz安装及使用:决策树可视化 阅读详情

相关推荐

在Qt中使用EtherCAT-SOEM的初始化中,状态机卡在PreOp->Save-Op过程中,出现State=0x12, Error=0x001e错误的解决办法

1.在调试EtherCAT软件过程中,一直出现配置从站进不了Save_op状态,通过下函数检查从站状态: //使用的从站编号为1 只有1个从站 ec_slave[1].state = EC_STATE_SAFE_OP; ec_writestate(1); //设置到安全模式 ec_statecheck(1, EC_STATE_SAFE_OP, EC_TIMEOUTSTATE * 4); printf("Slave %d State=0x%2.2x StatusCode=0x%4

zeal_for_rov的博客 6828

快速去除列表,集合,字典中的空、空格和None

如果存在非字符串类型(比如int)自己处理类型转换 # 列表,集合可用 flist = ["A", "", "", "B", "", "C", "", "", "D", "", ' ', None] def filter_element(el): return el and el.strip() new_list = list(filter(filter_element, flist)) print(new_list) # ['A', 'C', 'D', 'B'] # 字典.

h18208975507的博客 1048

TMS热管理RCP开发全流程:从MATLAB算法到硬件部署的5个关键步骤

本文详细解析了TMS热管理系统RCP开发的5个关键步骤,从MATLAB算法设计到硬件部署的全流程。通过熠速RCP平台,工程师可以高效实现热管理控制算法的仿真验证、硬件选型、实时化处理及系统集成,显著缩短开发周期并提升系统性能。文章特别强调了Simscape模型验证和硬件接口配置的重要性。

weixin_29224589的博客 388

python数据类型【集合(set)】

集合是一个无序,可变,不允许数据重复的容器 无序,无法通过索引取值可变,可以添加和删除元素 不允许数据重复 应用场景:注意:定义空集合时,只能使用v=set(),不能使用v={}(这样定义的是字典)添加元素 add() 删除元素 交集(取相同值) 并集(取所有值再去重) 差集 3.公共方法 减,计算差集 &,计算交集 |,计算并集 长度 for循环 4.转换 转换为集合类型,通过set()进行转换,如果有重复数据自动去重提示:int/list/tu

m0_46926492的博客 2287

欧拉 openEuler 20.03安装配置tigervnc-server

欧拉 openEuler 20.03安装配置tigervnc-server openEuler VNC

郭亚望 8953

从驱动编译到数据传输:RK3588与FPGA的PCIe通信实战解析

本文详细解析了RK3588与FPGA通过PCIe通信的实战过程,涵盖驱动编译、数据传输及性能优化等关键步骤。通过XDMA驱动实现高效DMA传输,适用于视频处理、数据采集等高性能场景,帮助开发者快速掌握嵌入式系统中的PCIe通信技术。

weixin_29214691的博客 525

python中字典和集合的储存方式(利用哈希函数,转载自小甲鱼)

写在前面 单片机的C,Python,matlab三个语言把我搞得晕头转向,学习python也会出现前路堵死的感觉。在学习python里面的字典的时候,用变量作为key,总是报错,我也不知道为什么。在学习集合的时候,列表又不能作为元素,又把我搞晕了,小甲鱼讲解的这篇文章属实清楚,给我豁然开朗的感觉。 转载正文 Python 的字典有好多个名称(“映射”、“哈希”、“散列"或者"关系数组”),那你知道为什么字典会被称为 Hash(翻译为"哈希"或"散列")吗? 你知道为什么字典对于键(Key)的存储数据要求比较

scarecrow_sun的博客 1449

ITIL 4 讲解:服务目录

最近一直比较忙,没有时间写文章了。今天有空,写写服务目录。 在最近的项目中,服务目录是比较热的话题。金融行业大部分银行、证券、金融公司都实行ITIL流程管理有些年头了,ITIL中最基础的服务请求、事件、问题和变更都已经实施完毕,目前客户在运维领域做的项目大部分都要求整理服务目录,实行服务级别管理。 服务目录介绍 首先解释一下什么是服务目录。服务目录在ITIL 4的定义是:有关服务提供商的所有服务和服务产品的结构化信息,与特定目标受众相关。这个解释有些晦涩难懂,简单来说就是提供给业务用户的服务项,就像饭

雅子MM的专栏 6467

day07 数据类型(下)

day06 数据类型(下) 版权声明:本博客转载自路飞学城Python全栈开发培训课件,仅用于学习之用,严禁用于商业用途,未经授权,严禁转载。 欢迎访问路飞学城官网:https://www.luffycity.com/ 常见的数据类型: int,整数类型(整形) bool,布尔类型 str,字符串类型 list,列表类型 tuple,元组类型 dict,字典类型 set,集合类型 float,浮点类型(浮点型) 目标:掌握字典、集合、浮点类型相关知识。 课程概要: set集合,一个不允许重复重复 &a

mannixiang的博客 388

从零开始学习AI人工智能本体论:概念与实战

本文旨在为初学者提供一个全面而易于理解的人工智能本体论入门指南。我们将覆盖从基本概念到实际应用的全过程,帮助读者理解本体论在AI系统中的核心作用。核心概念与联系:介绍本体论的基本概念和原理核心算法与操作步骤:详细讲解本体构建和推理方法项目实战:通过实际案例展示本体论的应用实际应用场景:探讨本体论在不同领域的应用未来发展趋势:展望本体论在AI领域的前景本体论(Ontology): 在AI中,指对特定领域概念及其关系的明确形式化描述。

AI智能探索者的博客 868

YOLOv8改进策略【卷积层】| DEConv: 强度信息与梯度特征融合的细节增强 适用于小目标与细节目标检测任务

本文记录的是利用 模块优化 的目标检测网络模型。(Detail-Enhanced Convolution,细节增强卷积)的设计旨在,解决 目标检测网络中传统普通卷积缺乏目标细节相关先验、对小目标边缘、目标与背景边界等关键细节捕捉能力不足的问题,同时避免引入额外参数量与计算开销,以适配 对实时推理性能与检测精度的双重需求。DEA-Net: Single image dehazing based on detail-enhanced convolution and content-guided atte

Limiiiing的博客 348

python中集合(set)原理及其操作

为了保持操作效率,在达到某个阈值时,Python 会自动增加存储空间,并重新计算所有已存储对象的位置。当你向集合添加一个元素时,Python 会首先计算该元素的哈希值(hash value),这个值决定了该元素在内部数据结构中的存储位置。Python 中的集合(set)是一个无序的不重复元素序列。Python 中的集合(set)是基于哈希表实现的。由于 set 是无序的,因此无法确定哪个是“下一个”被删除的项。找出只存在于其中一个 set 中而不同时存在于两个 sets 中的所有项。

瑞瑞的博客 3737

基于STM32F4XX 、HAL库的SHT40-CD1B-R3温湿度传感器驱动应用C语言程序设计

define SHT40_ADDR_READ 0x8B // CD1B 读地址 ((0x45 << 1) + 1)#define SHT40_ADDR_WRITE 0x8A // CD1B 写地址 (0x45 << 1)// 初始化 I2C1 (根据 CubeMX 生成的函数)// 湿度: -6%RH + 125%RH * (raw / 2^16)// 温度: -45°C + 175°C * (raw / 2^16)// 返回值: 0=成功, 1=失败(CRC错误或I2C通信错误)

PP_Cottage的博客 236

Python数据类型

Number(数字) 主要包括了整数,浮点数(小数)和复数 String(字符串) Boolean(布尔值) 真和假(True和False) None(空值) list(列表) dict(字典) tuple(元组) set(集合)...

Kailin_lin的博客 285

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

python-元组-列表-集合间的转换

# coding:utf-8 ''' 列表元组集合间隔转换的函数 原始类型 目标类型 函数 举例 列表 集合 set new_set = set([1,2,3,4,5]) 列表 元组 tuple new_tuple = tuple([1,2,3,4,5]) 元组 集合 set new_set = set((1,2,3,4,5)) 元组 列表 list new_list = list((1,2,3,4,5)) 集合 列表 list new_list = list({1,2,3,4,5}) 集合 元组 tup

weixin_37770279的博客 604

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

python编程常用类型_Python 高级编程系列__03:python 中常见的内置类型

python 中,对象有三个特征:身份、特征、值。身份:可以理解为对象在内存中的地址。可以用 id 来查看对象的地址。>>> a=3>>> id(a)4328207240>>> id(type(a))4304768160特征:对象的实际数据类型。可以用 type 来查看对象的类型。>>>a=3>>> type...

weixin_39628256的博客 78

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Python数据类型汇总(详细解读)大全

进阶学习python的九种数据类型IntFloatBoolStrNoneListTupleDicSet五种基本数据类型(int、str、bool、float、none)

weixin_62044613的博客 9227

1.python常见的内置类型

1.python常见的内置类型 常见的内置类型有哪些 对象的三个特征:身份、类型、值 python的内置类型 1.全局唯一的None 2.数值类型 3.迭代类型 4.序列类型 5.映射类型dict 6.集合类型 set 7.上下文管理类型 a = None b = None c = None print(id(a)) print(id(b)) print(id(c)) ---------------------------- 140705060953304 140705060953304 14070

Test_Simon的博客 271

速看!!!python史上最全数据类型总结

Python是一种强大的编程语言,提供了丰富的数据类型来处理不同的数据。在本博客中,我们将介绍Python中的常见数据类型,并了解它们的特点和用法。Dict是Python中表示无序、可变的键值对集合的数据类型。Set是Python中表示无序、不重复元素的集合的数据类型。Float类型的变量也可以进行数学运算,甚至可以进行高级的数学计算,如三角函数和指数运算。Dict类型的变量可以通过键来访问对应的值,可以进行添加、删除和修改键值对等操作。Int类型的变量可以进行常见的数学运算,如加法、减法、乘法和除法。

weixin_49016330的博客 3643

Python 数据类型

Python 数据类型

PlutoZuo的博客 143

python自动化学习笔记(day6)——基础数据类型(三)

基础数据类型(三) 四、散列类型 1. 集合 python 中集合(set)类型与数学中的集合类型一致,用来表示无序 不重复元素的集合。 1.1 集合定义 集合使用一对大括号 {} 进行定义,元素直接使用逗号隔开。集合中的元素必须是不可变类型。 a = {1, 2, 3, 4, 5} b = {1, 2 ,'a', ('a',), 1.5} #集合中的元素必须是不可变类型 print('a的类型为:', type(a)) print('b的类型为:', type(b)) a的类型为:

weixin_58716099的博客 950

Python 九大数据类型基础

python 九大数据类型

weixin_65782995的博客 901

python-数据类型

文章目录day01简述空值 None数值 int floatint 整数float 浮点数字符串 str布尔值 bool列表 list()元组 tuple()字典 dict()集合 set()固定集合frozenset复述 complex day01简述 今天是Python王之路分享知识的第一天,首先介绍下python: python是一种计算机高级语言,是解释性语言。现阶段主要用于自动化、...

wy9527 256

Python 八大数据类型。

  数据类型是编程的基础,当我们学习编程或者进行编程的时候数据类型是我们必须掌握的知识,那么你知道Python数据类型分为哪几类吗?小编为大家罗列了八大数据类型。   1.number(数字类型)   int整型   在32位机器上,整数的位数是32位,取值范围是-231~231-1,即-2147483648~214748364;在64位系统上,整数的位数为64位,取值范围为-263~263-1,即9223372036854775808~9223372036854775807。   long长整型

yirigu的博客 6517

python中的九种数据类型的简单介绍

今天我来讲解一下python中的九种数据类型:和。(int,float,bool)和两种(dict),(tuple),(set),列表(list)

m0_75017499的博客 3984

python九大数据类型

一看就会的数据类型

2301_79053551的博客 655
上一篇: Python的元组(tuple)类型
下一篇: Pytho字典(dict)类型
Akzeptieren
博客等级 码龄8年 65粉丝 79原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值