零基础 | 入门python04:献丑了,Python之字典和集合我终于弄清楚了

Python中的字典和集合有什么区别? 这些是字典和集合的一些高级用法,可以根据具体的需求选择适当的用法和功能。需要注意的是,字典和集合是可变的数据结构,因此对它们的操作可能会影响原始数据结构。可变性:字典是可变的,也就是说我们可以添加、删除、修改字典中的键值对;而集合也是可变的,我们可以添加、删除集合中的元素。这些例子只是字典和集合的基本用法,它们还有很多其他的用法和功能,可以根据需要进行深入的学习和探索。元素是否唯一:字典的键必须是唯一的,但是值可以相同;Python中的字典和集合是两种数据结构,它们有很多相似之处,但也有一些重要的区别。 阅读详情

前言

上一章已经介绍了Python中的列表和元组,了解了他们的基本操作和性能比较。了解两个同样很常见并且很有用的数据结构字典和集合。(文章较为详细,文末有视频版)

字典和集合的基础

字典和集合在Python被广泛使用,并且性能进行了高度优化,其重要性不言而喻。那究竟什么是字典,什么是集合呢?
相比于列表和元组,字典的性能更优,特别是对于查找、添加和删除操作,字典都能在常数、时间、复杂度内完成。而集合和字典基本相同,唯一的区别就是集合没有键和值的配对,是一系列无序的、唯一的键的组合。

什么是字典:

Python内置的数据结构之一,与列表一样是一个可变序列
以键值对的方式存储数据,字典是一个无序的序列
1、在存储数据时要经过hash(key)的计算,计算的结果就是存储的位置,因此字典的键值对顺序并不是按照存储时的先后顺序决定的,而是经过计算得到的存储位置。
2、字典中的键必须时不可变序列,否则当键改变时,hash计算的结果就会发生变化,导致存储位置发生变化。因此键必须要使用不可变序列

什么是集合:

1、python语言提供的内置数据结构
2、与列表和字典一样,都属于可变序列,同时与字典一样 无序的可变序列
3、集合是没有value的字典
4、集合类型与其他类型最大的区别在于,它不包含重复元素
5、集合中的元素是不可变的,但是整个集合是可变的
6、集合并不支持索引操作,因为集合本质上是一个哈希表,和列表不一样

字典和集合的创建方式

字典的创建方式

在这里插入图片描述
字典的实现原理
与查新华字典类似,差字典是先根据部首或者拼音查找相应的页码,Python中的字典是根据 key去查找value的所在位置

字典种的键是唯一的,创建字典时若出现“键”相同的情况,则后定义的“键-值”对将覆盖先定义的“键-值”对。
在这里插入图片描述
fromkeys()方法创建字典:当所有的键对应同一个值的时候,可以使用fromkeys创建字典
dict.fromkeys(seq[,value]):
1、seq:为字典“键”的值列表
2、value:为设置键序列(seq)的值,省略时默认为None
在这里插入图片描述
字典访问可以直接索引键,如果不存在就会抛出异常。
也可以使用get函数来进行索引,如果键不存在,调用get函数可以返回一个默认值。

集合的创建方式

在这里插入图片描述
注意:在Python的集合中0代表Flase,1代表True
在这里插入图片描述

集合的判断操作

in 或者 not in : 判断元素是否在集合中
在这里插入图片描述

字典的访问

1、根据键访问值
字典中每个元素表示一种映射关系,将提供的“键‘作为下标可以访问对应的值
如果字典中不存在这个”键“,则会抛出异常
在这里插入图片描述2、使用get()方法访问值
在访问字典时,若不确定字典中是否由某个键,可通过get()方法进行获取。
若该键存在,则返回对应的值
若该键不存在,则返回默认值
语法格式
dict.get([key[,default = None])
key:要查找的键
default:默认值,默认为None,可自行设置需要输出的默认值。如果指定的键不存在,则返回默认值,当default为空时,返回None
在这里插入图片描述

in 和 not in 在字典中的使用

判断键是否在字典中
在这里插入图片描述

修改和添加字典中的元素

当以指定键为下标为字典元素赋值时,有两种含义:
若该键存在字典中,则表示修改该键对应的值
若该键不存在字典中,则表示添加一个新的键值对,也就是添加一个新元素到字典中
在这里插入图片描述

删除字典中的元素 del命令 clear()方法 pop()方法 popitem()方法

del命令:

根据”键“删除字典中的元素
在这里插入图片描述

clear()方法:

用于清除字典中所有元素,其语法格式如下:
在这里插入图片描述

pop()方法:

用于获取指定”键“的值,并将这个键值对从字典中移除,并返回该键的值。
dict.pop(key[,default])
key:要被删除的键
default:默认值,当字典中没有要被删除的key时,该方法返回指定的默认值
在这里插入图片描述

popitem()方法:

用于随机获取一个键值对,将其删除,并以元组的方式返回被删除的键值对
dict.popitem():该方法无参数
在这里插入图片描述

集合添加元素 add()方法 update()方法

set_1.add(x)方法:如果数据项x不在结合set_1中,将x添加到set_1中 (一次添加一个元素,元素不重复的前提下)

set_1.update(T)方法:合并结合T中的元素到当前集合set_1中,并自动去除重复元素 (至少添加一个元素,元素不重复的前提下)
在这里插入图片描述

集合删除元素 remove()方法 discard()方法 pop()方法 clear()方法

S.remove(x)方法:

如果x在集合S中,移除该元素;如果x不存在则抛出异常

S.discard(x)方法:

如果x在集合S中,移除该元素;如果x不存在不会报错
在这里插入图片描述

S.pop()方法:

随机删除并返回集合中过的一个元素,如果集合为空则抛出异常

S.clear()方法:

清空集合
在这里插入图片描述

更新字典

使用update()方法:可以将新字典的键值对,一次性全部添加到当前字典中
如果两个字典存在相同的键,则以新字典中的值为准,更新当前字典
dict.updata(dict2)
dict:当前字典
dict2:新字典
在这里插入图片描述

获取字典视图的三个方法

key()方法

在这里插入图片描述

values()方法

在这里插入图片描述

items()方法

在这里插入图片描述

遍历字典

使用for循环遍历,列表、元组和集合的组合时
  ·当变量x为一个时,x会直接获取列表(元组)的值

·当变量x,y···的个数刚好与列表(元组)的个数相同时,则直接将值依次赋给变量

注意:只有在使用列表和元组和集合的两两组合时才能这样使用。
在这里插入图片描述
在这里插入图片描述

标题遍历字典中所有的键值对

使用items()方法,该方法以列表的形式返回可遍历的键值对元组
在这里插入图片描述

遍历字典中所有的键

当不需要字典中的值时,可使用keys()方法,只遍历字典中的键,该方法以列表返回一个字典中所有的键

在这里插入图片描述

遍历字典中所有的值

当只关心字典所包含的值时,可以使用values()方法,该方法以列表形式返回字典中所有的值
在这里插入图片描述

字典的特点

1、字典中所有的元素都是一个键值对(key - value),key不允许重复,但是value可以重复
2、字典中的元素是无序的
3、字典中的key是不可变对象(不可变序列)
4、字典页可以根据需要动态伸缩
5、字典会浪费较大的内存,是一种使用空间换时间的数据

复制字典

1、直接赋值:对象的引用
2、浅复制(copy()方法):拷贝父对象,引用对象内部的子对象
3、深复制(deepcopy()方法):copy模块的deepcopy()方法,完全复制父对象及其子对象
在这里插入图片描述

集合间的关系

两个集合是否相等 == 、 != 、 is 、not is
在这里插入图片描述
一个集合是否是另一个集合的子集
可以调用方法 issubset() 判断
B是A的子集

在这里插入图片描述
一个集合是否是另一个集合的超集
可以调用方法 issuperset() 判断
A是B的子集
在这里插入图片描述
两个集合是否没有交集  
可以调用方法 isdisjoint() 判断  
在这里插入图片描述

集合的数据关系

pass

总结

我们一起学习了字典和集合的基本操作,并对它们的高性能和内部存储。结构进行了讲解,字典和集合其内部的哈希表存储结构保证了其查找、插入、删除操作的高效性,

所以字典和集合通常运用在对元素的高效查找、去重等场景。

推荐一些Python学习资料

附上Python学习指南

在这里插入图片描述

👉Python学习路线汇总👈

围绕Python所有方向的技术点做的整理,以形成各个领域的知识点汇总,这样就可以按照上面的知识点去找对应的学习资源,保证学得较为全面。

👉Python必备开发工具👈

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

👉Python学习视频600合集👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

👉实战案例👈

边学边练是最高效的学习方法,这时候可以搞点实战案例来学习。

👉100道Python练习题👈

检查学习结果。

👉面试刷题👈


👉资料领取👈

这份完整版的Python全套学习资料已为大家备好,朋友们如果需要可以微信扫描下方二维码添加“住隔壁的王叔”,输入"领取资料" 可免费领取全套资料【有什么需要协作的还可以随时联系我】朋友圈也会不定时的更新最前言python知识。
在这里插入图片描述

Python中的字典和集合 Python中的字典和集合字典和集合是Python中常用的数据结构,用于存储和操作数据。字典(Dictionary)是一种键-值对(key-value pair)的数据结构,而集合(Set)是一种无序、不重复元素的集合。本文将详细介绍字典和集合的用法,并提供相应的源代码示例。字典是Python中非常常用的数据结构,它可以用于存储和访问键值对。字典中的键是唯一的,可以是不可变的数据类型(如字符串、整数、元组),而值可以是任意类型的数据。字典使用大括号 来表示,每个键值对使用冒号 分隔,键和值之间使用逗号 阅读详情

相关推荐

ISO26262 功能安全各个阶段测试要求

1. 开发过程说明 系统层面:包括软硬件集成测试、系统集成测试以及整车测试。 硬件层面:包括硬件集成与测试。 软件层面:单元测试、集成测试。 2. 功能安全总体要求 2.1 各项指标 2.2 诊断覆盖度举例 针对一个信号举例说明: 3. 功能安全测试要求 3.1 测试计划 核心内容应包括, 测试对象:需要测试的对象描述,以及测试的范围描...

AgingMoon的博客 1万+

【数据结构】—— 集合与字典

【注】存储结构比较简单,但是还有一个表示的细节需要考虑:在一个字符空间中,位向量元素的下标应该如何排列?一种自然的想法是,字符的8位从左至右下标递增排列。字典中的元素之间能够根据其关键码进行比较大小,对字典元素的插入、删除和检索等操作一般也以关键码为依据进行。当表示的集合存在某个不太大的公共超集时,采用位向量的方式来表示这种集合往往十分有效。用散列函数h计算得到多个相同的散列地址(即h( key1 ) = h( key2)),这种现象称为碰撞。(使用位向量表示的集合的操作会涉及很多的位操作,有需要再补充)

冲沖衝的博客 2319

oracle合并行---解决listagg 拼接字段返回过长 (Ora-01489 result of String concatenation is too long)

oracle合并行---解决listagg 拼接字段返回过长 (Ora-01489 result of String concatenation is too long)

清影的博客 6283

字典和集合

集合:是无序的,不支持下标索引,它是可变的数据类型,集合中的元素是唯一的,一般用于元组或者列表中的元素去重 1.空集合:不能直接使用s1={},这样创建出来是字典 2.集合里面的元素是不可重复的 3.集合的应用(给列表去重) 4.集合只支持成员操作符和for循环 5.集合的常用方法 1)增加 2)删除 3)交集、并集、差集 4)对等差分 5)判断...

owlcity123的博客 9221

ISCC练习题MISC

解题技巧:看最后括号应该是IceCTF,先用了一键解码啥也没有啊,不对不对!好像是字符频率统计,转换网站:http://quipqiup.com/有人给你发了一串信息,你能解开吗?

m0_62737381的博客 1119

BambuStudio学习笔记:OpenCSG - 实时构造实体几何(CSG)渲染的 OpenGL 方案

**OpenCSG** 是一个基于 **OpenGL** 的 **构造实体几何(CSG)** 实时渲染库,通过 **深度剥离算法** 实现布尔运算(并集、交集、差集)的可视化。其核心目标是简化复杂几何体的交互式建模,适用于 CAD 原型设计、3D 打印预览、教育工具等场景。

zzzkk2009的专栏 929

序列总结:元组和列表、字典和集合之间的关系

序列 序列是一种数据存储方式,用来存储一系列的数据。在内存中,序列就是一块用来存放多个值的连续的内存空间。比如一个整数序列[10,20,30,40],可以这样示意表示: 由于 Python3 中一切皆对象,在内存中实际是按照如下方式存储的: a = [10,20,30,40] 从图示中,我们可以看出序列中存储的是整数对象的地址,而不是整数对象的值。 python中常用的序列结构: 序列解包: ...

纸飞机的博客 4166

基于51单片机的贪吃蛇游戏设计

本科时候做的一个课程作业,自己打一个很简易的电路,比较有意思且易上手,故将之记录下来。(全套的仿真及代码,演示视频,课程报告以及PPT展示上传在优快云下载区) 一. 实验目的 (1) 通过对C51语言的理解,编写程序实现对贪吃蛇的有效控制; (2) 通过对51单片机硬件的学习,学会运用面包板,独立按键、点阵屏等,完成对完整电路的搭建过程; (3) 通过对Proteus仿真软件的学习,实现基于STC89C52单片机的8*8点阵贪吃蛇的硬件电路仿真。 二. 实验介绍 贪吃蛇是一款经典小游戏,其游戏的规则是:玩

山山の十三先生 2万+

python基础篇-字典和集合

python的字典和集合

清微的博客 1125

易灵思FPGA-软件Efinity和Modelsim联仿设置

文章目录前言一、modelsim破解过程二、使用步骤1.引入库2.读入数据总结欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智

qq_35221855的博客 5362

21、汽车喷漆目标区域识别:机器学习与深度学习的应用

本文探讨了机器学习与深度学习在汽车喷漆目标区域识别中的应用,重点利用卷积神经网络(CNN)提高喷漆效率并减少油漆浪费。通过构建和预处理包含多种汽车类型的数据集,采用ResNet-18、ResNet-50和MobileNet-v2等模型进行训练与评估,结果表明ResNet-50在准确率和鲁棒性方面表现最佳。研究还分析了数据裁剪、标签处理、网络架构差异以及光照和遮挡对识别效果的影响,并提出了系统实现流程。最后,文章展望了多传感器融合、模型优化和场景适应性等未来研究方向,为智能化喷漆工艺提供了技术参考。

5b6n7m8的博客 102

Python中字典(dict)和集合(set)区别与联系

集合(set) 与 字典(dict)的区别

L29979264458的博客 7017

Unity零基础到进阶 | Unity 探针系统深度解析:光照探针、反射探针与相关技术

在 Unity 渲染管线中,探针(Probe) 是一类通过预计算或实时采样来捕捉空间光照信息的核心组件。它们弥补了传统静态光照贴图和实时光源各自的局限性,是实现高质量、高性能全局光照效果的关键工具。 本文将系统介绍光照探针(Light Probe)和反射探针(Reflection Probe)的作用与用法,分析二者之间的协同关系,并延伸介绍自适应探针体积(APV)、光照探针代理体(LPPV)、探针体积等进阶技术。

努力前行,总会成为自己心中的那道光 1万+

集合与字典

一、集合 1、集合的性质和创建 集合(set)是一个无序的不重复元素序列。1,2,3,4,1,2,3 = 1,2,3,4 集合的创建: 1). 使用大括号 { } 或者 set() 函数创建集合; 2). 注意: 创建一个空集合必须用 set() 而不是 { } { } 是用来创建一个空字典。 2、集合的内置方法 (1)集合的增加 == 2)集合的删除== 3)集合的查找 判断子集...

Wangtuo1115的博客 872

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Python-字典与集合

字典通常用于描述一个对象的属性,如果一个物品的信息,如:颜色、大小、形状等。

掩月天权的博客 1564

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Python中字典和集合的区别与联系

字典(dict)和集合(set)在 Python 被广泛使用,并且性能进行了高度优化,其重要性不言而喻。 字典和集合基础 字典是一系列由键(key)和值(value)配对组成的元素的集合。python3.7之后,字典底层是2个数组,一个为一维数组,存放hash(key)取余后的值作为数组的索引,对应索引位置存放键值对在二维数组的索引位置。因此二维数组是一个有序的数组。 相比于列表和元组,字典的性能更优,特别是对于查找、添加和删除操作,字典都能在常数时间复杂度内完成。 而集合和字典基本相同,唯一的区别,就是集

scu-liu的博客 1万+

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

关于Python字典和集合的基础知识点汇总

如图set1与set2相同,返回结果为true,说明二者相同,而在创建集合使用set()方法的时候要注意set()的参数只有一个,因此可以把一大堆数打包为一个列表或者是一个元组后,传入set()函数中,那么接下来就是集合的最主要特点:唯一。列表brand,slogn的索引和相对的值是没有任何关系的,但是可以看出,在两个列表之间索引号相同的元素是有关系的,上述索引的方法确实可以实现,但用起来比较别扭,且效率不高,所以不推荐这种用法,了解即可。答案是可以的,我们可以通过借助集合的唯一性来实现这个要求。

weixin_74867855的博客 353

第三章 字典和集合

Python基本上是字典包装成的语法糖 ----Lalo Martins,early digital nomad and Pythonista. 本章的新内容 dict 实现是在 Fluent Python 第一版中描述的内容演变而来的,本章主要的修订有: 散列表算法的例子使用的是set,这样更容易理解。 涵盖在 dict 实例中保留键插入顺序的内存优化(在 Pytho...

m0_57581736的博客 977

python中的集合和字典

集合()和字典()是 Python 中两种常用的内建数据结构,它们都基于哈希表(hash table)实现,具有一些相似的特性,但也有显著的不同。下面是它们的详细比较:集合(): python复制代码字典(): python复制代码集合():示例: python复制代码字典():示例: python复制代码集合(): python复制代码字典(): python复制代码集合(): python复制代码字典(): python复制代码

weixin_46532327的博客 1861

python基础-字典与集合

我是张晨,一转眼,我在新课已经学习了很长一段时间。利用去重效果将其他容器里重复的数据去除多余的,保留一个。字典存储的信息会更加明白直接,可以存储更加复杂的数据。字典基本格式:{‘key’:‘value’}{} 集合也是大括号 里面的数据不是一对一的。key的数据是不可变类型,key是不重复的。1.获取字典中的values。2.获取字典中的keys。

qq_58124010的博客 331

python字典与集合

字典是一系列由键(key)和值(value)配对组成的元素的集合 在python3.7+字典被确定为有序,其长度大小可变,元素可以任意的增删改。相比于列表和元组,字典性能更优秀,增删改查操作都可在常数时间复杂度内完成。 集合和字典基本相同,区别是没有键和值的配对,是一系列无序的、唯一的元素组合。集合不支持索引进行访问、操作,其本质上是一个哈希表,和列表不一样。 字典和集合的工作原理,字典和集合的内部结构都是一张哈希表 字典表存储了哈希值(hash)、键和值这三个元素,集合没有键和值的配对,只有单一的元素

biny的博客 395

第六章 字典与集合

第6章 字典与集合 6.1 字典的概念 在现实生活中,字典可以查询某个词的语义,即词与语义建立了某种关系,通过词的索引便可以找到对应的语义,如图所示。 在Python中,字典也如现实生活中的字典一样,使用词-语义进行数据的构建,其中词对应键(key),词义对应值(value),即键与值构成某种关系,通常将两者称为键值对,这样通过键可以快速找到对应的值。 字典是由元素构成的,其中每个元素都是一个键值对,具体示例如下: 示例中,字典由3个元素构成,元素之间用逗号隔开,整体用大括号括起来。每个元素是一个键值对,键

weixin_52846494的博客 773

Python: 字典与集合

1.1字典的使用 字典中每一个成员以“键:值”对的形式成对存在的。字典是以大括号“{}”包围并且以“键:值”对的方式声明和存在的数据集合。字典与列表比较最大的不同是字典是无序的,其成员的位置是象征性的,在字典中通过键来访问成员,而不能通过其他的方式来访问该成员。 1.1.1创建并使用字典 在Python程序中,字典可以储存任意类型的对象。字典的每一对键值对“key:value”之间必须用冒号“:”分隔,每一对之间用“,”分隔,整个字典在“{}”中。所有的 key 都是唯...

小孙的博客 2258

深度解析 NT-Xent:对比学习中的标准化温度交叉熵损失

摘要: NT-Xent(标准化温度交叉熵损失)是自监督对比学习中的核心损失函数,用于在无标签数据中学习有效特征。其核心思想是通过余弦相似度将同一事物的不同视角(正样本)拉近,不同事物(负样本)推远。关键要素包括:L2标准化确保特征方向一致性、温度参数τ放大困难样本差异、交叉熵结构稳定梯度。实现时需注意矩阵化计算、使用非线性投影头提升效果,并避免小批量问题。生产部署中需调整τ应对噪声,并采用分布式训练同步策略。该损失函数广泛应用于图像、时序数据等领域的特征提取任务。

feizuiku0116的博客 1005

字典与集合

一、字典 1、字典⽤于保存具有映射关系(key-value对)数据的集合。 2、对于“name:张三”,key就是“name”,key对应的value是“张三” 3、一个key-value对 认为是一个条目(Entry),字典是存储key-value对的容器。 二、字典类的特点 1、与数组不同,字典靠key存取元素;2、key不能重复,value必须是对象;3、键值对在字典中是无序存储的

IamYourHero的博客 1921

字典集合区别

字典用于存储键值对关系,适合快速查找和存储映射信息。集合用于存储不重复的元素,适合去重和集合运算。两者都基于哈希表实现,操作效率高,但在功能和用途上有明显区别。

m0_74242387的博客 615
上一篇: 生活中常见的几个Python应用,你知道吗
下一篇: 零基础 | 入门python05:探索python之字符串,给你一个不一样的金秋收获
黑客老许
博客等级 码龄8年 6153粉丝 1028原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值