码小会讲解【字典】——Python学习秘籍

Python基础之字典练习 字典的增删改查 1.查看字典的长度 2.通过key查看字典的value 3.替换字典里的key 4.通过key删除字典的某个键值对 5.字典添加键值对 6.用del方法删除字典 谢谢观看! 阅读详情

Python里面有3大数据结构:列表,字典和集合。之前小会已经讲解了列表,今天来讲一下字典。作为最常用的数据结构之一,里面有一些重要的技巧用法,小会把这些都整理到一起,希望能对你的编程功力大有帮助。

一、定义

字典的每个值都具备自己独有的名称即键( key ),每个 key 都有对应的值( value ),字典中的 key 和 value 必须成对出现 。整个字典包括在花括号‘{ }’中,它的每个键值 ( key => value )对使用冒号( : )分割,每对值之间用逗号( , )分割。

定义如记录人员成绩的字典,如下:

d = {'Woodman': 95, 'Alan': 85, 'Bobo': 59} 

我们把姓名 Woodman、Alan、Bobo 称为key,对应的成绩 95、85、59 称为value,dict 字典可以通过 key 来查找值,一个 key:value 算作一个值。

注意:dict字典用的键( key )必须是唯一的,但值则不必。一个字典中不能出现相同名称的键( key ),但值能相同,值可以是任何数据类型(字符串、数字、元组、列表、字典等)。

# 混合字典 key不重复,值可以是任意类型d = {'woodman': 98,  2.5: 'PM', 'Bobo': [89, 65, 34],'Mydict': {'Alan': 99}}

拓展:字典dict 的最大特点是查找速度快,无论 dict 有10个元素还是10万个元素,查找速度都一样。

二、字典的基本操作

1、如何访问字典中的值?
adict[key] 形式返回键key对应的值value,如果key不在字典中会引发一个KeyError。

2、如何检查key是否在字典中?
a、has_key()方法 形如:adict.haskey(‘name’) 有–>True,无–>False
b、in 、not in 形如:‘name’ in adict 有–>True,无–>False

3、如何更新字典?
a、添加一个数据项(新元素)或键值对
adict[new_key] = value 形式添加一个项
b、更新一个数据项(元素)或键值对
adict[old_key] = new_value
c、删除一个数据项(元素)或键值对
del adict[key] 删除键key的项 / del adict 删除整个字典
adict.pop(key) 删除键key的项并返回key对应的 value值

三、字典的索引

dict1[key] #key是字典的键,返回的是对应的值value
dict1.get(key)#get方法获取键的值,若键不存在,则返回设定的默认值default(默认为None)--与`[key]`获取值的区别是,get方法遇到键不存在的时候会返回设定值,而直接索引遇到键不存在时会报错“missing-key”

四、字典遍历

1、遍历字典的key(键)

for key in adict.keys():print key

2、遍历字典的value(值)

for value in adict.values(): print value

3、遍历字典的项(元素)

for item in adict.items():print item

五、字典的排序

用万金油sorted()函数,举一个简单的例子

my_dict={"cc":100,"aa":200,"bb":10}
print(sorted(my_dict.iteritems(),key=lambda x:x[0]))#表示按照key排序
>>>[('aa', 200), ('bb', 10), ('cc', 100)]
print(sorted(my_dict.iteritems(),key=lambda x:x[1]))#表示按照value排序
>>>[('bb', 10), ('cc', 100), ('aa', 200)]

注意:原始的my_dict本身顺序并没有变(不信你可以print看看),排序是通过sorted()返回了一个新的字典。

另外一种做法,因为字典是无序,若你一开始设计的时候就希望这个数据结构,按照的添加的顺序进行有序排列(比如读取CSV文件),那么我们就是利用collection模块里面的OrderedDict()处理:

from collections import OrderedDict
orderDict=OrderedDict()
orderDict['a']=1
orderDict['b']=2
orderDict['c']=3
print(orderDict)
>>>OrderedDict([('a', 1), ('b', 2), ('c', 3)])

对比一下,若是普通的dict是乱序的,若不用OrderedDict()

orderDict=dict()
orderDict['a']=1
orderDict['b']=2
orderDict['c']=3
print(orderDict)
>>>{'a': 1, 'c': 3, 'b': 2}

最后要提醒一下:OrderedDict()虽然是好东西,但是它内部维护了一个双向链表,若数据量很大的话,会非常消耗内存。

六、字典中提取部分子集

我们原来有一个长的字典,我们想提取其中一部分变成另外一个子集,我们怎么做呢,我们来看一个小例子:

students_score={'jack':80,'james':91,'leo':100,'sam':60}
#提取分数超过90分的学生信息,并变成字典

我们可以用字典推导式,轻松搞定

good_score={name:score for name,score in students_score.items() if score>90}
print(good_score)
>>>{'james': 91, 'leo': 100}

七、总结

关于字典,记住以下几点:
1、字典的键值对是无序的( Python3.6 开始有序),值可修改,定义字典时键值( key=>value )必须成对出现;
2、字典的键(key)不可以重复,键重复时值以最后一个为准;
3、字典的键必须不可变,所以可以用数字,字符串或元组充当,而不能用列表;
4、不管字典的数据量有多大,他们的访问速度都是一样的。

----------------------------------------分割线--------------------------------------------------------

好啦,今天的内容就是以上这些部分了,如果有兴趣学习Python的小伙伴,可以关注我们的免费课程《嘿有趣之Python快速入门》。
网址

python基础之字典的访问 博主简介:原互联网大厂tencent员工,网安巨头Venustech员工,阿里云开发社区专家博主,微信公众号java基础笔记优质创作者,csdn优质创作博主,创业者,知识共享者,欢迎关注,点赞,收藏。 目录一、背景二、字典的访问1.根据键访问值2.使用get()方法访问值三、参考四、总结 一、背景   在实际开发过程中,我们会遇到需要将相关数据关联起来的情况,例如,处理学生的学号、姓名、年龄、成绩等信息。另外,还会遇到需要将一些能够确定的不同对象看成一个整体的情况。Python提供了字典和集合这两种数. 阅读详情

相关推荐

PyCharm中文指南:Windows平台Python开发环境配置与高效工作流实战

集成开发环境(IDE)是提升编程效率的核心工具,它通过代码编辑、调试、版本控制等功能的深度集成,为开发者提供了一体化的工作平台。其原理在于将分散的开发工具链整合,通过智能感知、实时分析和项目管理,降低认知负荷。在Python开发领域,PyCharm作为功能全面的专业IDE,其技术价值体现在对虚拟环境管理、调试器、数据库工具和版本控制系统的无缝支持上,能显著加速项目开发周期。尤其在Windows操作系统环境下,面对路径管理、系统权限和性能优化等特有挑战,合理的PyCharm配置与工作流搭建至关重要。本文聚焦于

weixin_34293246的博客 443

笔记:python字典基础随手记

将字符串与其它格式之间相互转换(使用json库) import json #json.dumps(字典) 将字典转换为字符串 #json.loads(字符串) 将字符串转换为字典” #新建一个字典 dic_v1 = {"confirm":500,"heal":480} #创建字典 print(dic_v1) print(type(dic_v1)) #将字典dic_v1转换为字符串 print("将字典dic_v1转换为字符串".center(30,'=')) import jso

蓝多多的小仓库 758

SAP系统中PP模块全配置文档

配置路径IMG>SAP NetWeaver>常规设置>维护日历>工厂日历事务代码SCAL要求传输工厂代码描述日历代码日历描述起始日期星期一星期二星期三星期四星期五星期六星期日有效开始日期有效结束日期1000南微医学工厂MT南微医学工厂日历√√√√√√√201820502.4定义工厂配置路径IMG>生产>物料清单>常规数据>定义BOM状态事务代码OS23要求传输配置路径IMG>生产>主数据>资源>常规数据>标准值>定义参数。

yanzibing99的博客 1894

python字典通过键访问元素值

访问主要通过 a.get(key) #a是字典名称。key是键 示例代码 z = ['Cat','Taz','Happy','Aet','Aaq'] a = [100,23,63,94,85] Fen = dict(zip(z,a)) #建立姓名和分数的字典关系 print("这次考试的同学为:",z) p = [100,23,63,94,85] q = ['成绩优秀,考试获取100分', '成绩需要提升', '成绩刚好及格', '成绩优秀,排名靠前',

qhqlnannan的专栏 1858

Mybatis Provider注解实现批量插入

需求 借助mybatis 的provider实现一个比较通用的,批量插入数据接口。 Mapper接口 第一参数为需要批量插入的数据,第二个参数为对应实体类的class public interface BaseDao<T> { @InsertProvider(type = BaseProvider.class, method = "batchInsert") int batchInsert(@Param("lists") List<T&gt

小楼夜听雨的博客 2420

一文看懂分布式存储架构

目录一、集中存储结构二、分布式存储1 、分布式存储的兴起2 、分布式存储的重要性3 、分布式存储的种类和比较三、分布式理论浅析1 、一致性和可用性2 、数据分布3 、复制4 、分布式协议5、跨机房部署四、分布式文件系统1、 Google 文件系统( GFS )2、 Taobao 文件系统( TFS )3、 Fackbook Haystack 文件系统4、 CDN 内容分发网络五、分布式键值系统1、 Amazon Dynamo2、 Taobao Tiar3、 ETCD4 、产品选型比较( Etcd , Zoo

weixin_70730532的博客 2万+

JS 数组与字典(JSON)通过字符串快捷取值

有的情况下,需要通过一个字符串快捷获取到 Json 或 数组Json 中指定对象的值,比如: <script> // -------------------------- Json 测试 // 数据 const json = { a: 'a', b: { c: 'c', d: [{ e: 'e' }], f: [[{ g: 'g' }]] } } // ..

卡尔特斯 2763

文档多模态识别工具对比:MinerU、PaddleOCR、Marker

本文对比了三款文档多模态识别工具:MinerU、PaddleOCR和Marker。MinerU专注于中文文档的端到端解析,支持复杂元素提取和结构化输出,适合中文论文和教材解析。PaddleOCR是通用OCR工具包,支持多语言和全流程任务,适用于发票、车牌等图像OCR。Marker则注重多语言支持和轻量化部署,适合英文论文和技术文档的快速转换。三者在核心技术、中文优化、表格处理、输出格式、部署复杂度和适用语言等方面各有优劣。选型建议根据具体需求:MinerU适合高精度中文解析,PaddleOCR适合定制化OC

朴拙科技的博客 4746

码小会讲解【字符串】 ——Python学习秘籍

日常编码中,大多数时候我们要对数据进行处理,而这些数据不管是数组、列表、字典,最终都逃不开字符串的处理。 今天,小会就和大家聊一聊字符串。 一、字符串的定义 估计很多人看到这个标题就想关网页了,别这样!不妨往下看看,今天小会用人话给大家解释这些复杂的定义,绝对秒懂。 书本的定义是,字符串是放在引号里面的一系列字符。小会觉得用人话不严谨地说,就是标点符号和字母文字组成的那些单词、句子,比如: ‘hello’ ‘My lucky number is 7’ 重点就是一定一定一定要用引号引起来,至于是单引号或双引

Codeforest_cloud的博客 207

ESP32+LED12864液晶屏实战:手把手教你显示中文与自定义图标(附完整代码)

本文详细介绍了如何使用ESP32单片机驱动带字库的LED12864液晶屏,实现中文显示与自定义图标。从硬件选型、接线方案到驱动编写、字库解析,提供了完整的实战代码与优化技巧,并最终构建了一个智能家居控制面板的完整示例项目。

weixin_29212867的博客 147

《从理念到落地:Claude Code 在真实项目中的深度实践指南》基于 Anthropic 团队内部使用经验的扩展与深度解读,一篇面向工程团队的全面实践手册

Claude Code 支持通过# 创建新的 API 端点根据以下输入创建完整的 API 端点:资源名称:$ARGUMENTS请创建以下文件:1. `src/routes/{resource}.routes.ts` - 路由定义2. `src/controllers/{resource}.controller.ts` - 控制器3. `src/services/{resource}.service.ts` - 服务层。

AI天才研究院 484

python怎么全部替换单引号_码小会讲解【字符串】 ——Python学习秘籍

日常编码中,大多数时候我们要对数据进行处理,而这些数据不管是数组、列表、字典,最终都逃不开字符串的处理。今天,小会就和大家聊一聊字符串。一、字符串的定义 估计很多人看到这个标题就想关网页了,别这样!不妨往下看看,今天小会用人话给大家解释这些复杂的定义,绝对秒懂。书本的定义是,字符串是放在引号里面的一系列字符。小会觉得用人话不严谨地说,就是标点符号和字母文字组成的那些单词、句子,比如:‘hello’...

weixin_39981185的博客 2117

【PCIe EP 设备入门学习专栏 -- 8 PCIe EP 架构详细介绍】

Synopsys PCIe 5.0 EP 架构由多个功能模块组成,整体遵循分层 + 模块化设计CXPL(事务层 + 链路层 + 物理层 MAC)XADM(仲裁/生成)、XAIM(应用接口)RADM(过滤/路由/Completion)CDM(配置空间)、PMC(电源管理)、LBC/DBI(寄存器访问)MSG_GEN(消息)、CXS(多芯片一致性)

CodingCos的博客 384

python find()效率_码小会讲解【基本数据类型】——Python学习秘籍

在上一期中针对Python学习中【字符串】的相关知识点进行了归纳,今天将梳理一下Python基本数据类型。首先,我们来罗列一下Python提供的基本数据类型,主要介绍常用的4大数据类型。包含:数值Numbers(整形、浮点型、复数、布尔型等)、字符串String、列表List、字典Dictionaries。一、数值(Numbers)数字类型一般用来存储整数、浮点数(小数)、布尔值(bool)等,分...

weixin_39742065的博客 339

如何设置Xilinx以太网IP核的Pause帧处理

这里要注意,为什么是或,第一个条件是该功能使能取反,也就是说,如果你设置使能不打开的话,这个条件是直接满足的;先来看图中第二句,判断该以太网数据包为Global Pause帧(gpp),首先要满足Step1,然后是由上图中第二句代码(assign global_pause_packet)后面的所有项“与”(&&)起来的,就是说要满足后面所有的项,分别是DA符合,SA符合,Etype符合,Opcode符合,并且使能了该功能(即设置ctl_rx_enable_gpp=1)。如果没通过,则进入Step3。

qq_43416206的博客 620

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

码小会讲解【基本数据类型】——Python学习秘籍

在上一期中针对Python学习中【字符串】的相关知识点进行了归纳,今天将梳理一下Python基本数据类型。 首先,我们来罗列一下Python提供的基本数据类型,主要介绍常用的4大数据类型。包含:数值Numbers(整形、浮点型、复数、布尔型等)、字符串String、列表List、字典Dictionaries。 一、数值(Numbers) 数字类型一般用来存储整数、浮点数(小数)、布尔值(bool)等,分别用 int、float、bool符号表示其对应类型。 在python中可以使用 type()方法 查.

Codeforest_cloud的博客 176

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

秒懂百科python_码小会讲解【字符串】 ——Python学习秘籍

日常编码中,大多数时候我们要对数据进行处理,而这些数据不管是数组、列表、字典,最终都逃不开字符串的处理。今天,小会就和大家聊一聊字符串。一、字符串的定义估计很多人看到这个标题就想关网页了,别这样!不妨往下看看,今天小会用人话给大家解释这些复杂的定义,绝对秒懂。书本的定义是,字符串是放在引号里面的一系列字符。小会觉得用人话不严谨地说,就是标点符号和字母文字组成的那些单词、句子,比如:‘hello’‘...

weixin_39622901的博客 306

温度PID控制PLC程序

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

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

perl 取字符串不带换行符_码小会讲解【字符串】 ——Python学习秘籍

日常编码中,大多数时候我们要对数据进行处理,而这些数据不管是数组、列表、字典,最终都逃不开字符串的处理。今天,小会就和大家聊一聊字符串。一、字符串的定义 估计很多人看到这个标题就想关网页了,别这样!不妨往下看看,今天小会用人话给大家解释这些复杂的定义,绝对秒懂。书本的定义是,字符串是放在引号里面的一系列字符。小会觉得用人话不严谨地说,就是标点符号和字母文字组成的那些单词、句子,比如:‘hello’...

weixin_39834488的博客 138

PYTHON学习0017:集合----2019-6-11

一、定义及特点:集合是一个无序的,不重复的数据组和,作用如下:1、去重,吧一个列表变成集合,就自动去重了2、关系测试,测试两组数据之间的交集,差集,并集等关系。3、语法:s={},如果大括号里为空表示是字典,如果里面有数据,比如s={1,2,“alex”}就表示集合(set)了。4、可以吧其他数据类型转换为集合,比如列表m=【“alex”,“rain”,“pw”】转换语法为set(m),转换后就为...

weixin_34124939的博客 115

图像自监督大模型系列:MoCo系列论文精读

摘要: 论文《Momentum Contrast for Unsupervised Visual Representation Learning》(CVPR 2020)提出了一种基于对比学习的无监督视觉表征方法MoCo,通过构建动态字典解决图像无监督学习中的两大挑战:字典规模受限和编码器一致性维护。MoCo引入队列机制存储历史样本作为字典,分离字典大小与batch限制,并采用动量更新(动量系数0.999)缓慢同步查询(query)与键(key)编码器的参数,确保特征一致性。实验表明,MoCo在ImageNe

老年人的博客 1524

机器学习之k-近邻算法

一、k-近邻算法概述 k-近邻算法,简单概述就是采用不同特征值之间的距离方法分类 二、KNN工作原理 1、假设有一个带有标签的样本数据(训练样本集),其中包含了每条数据与所属分类对于关系。 2、输入没有标签的数据后,将新数据的每个特征与样本集中数据对应的特征进行比较。 1、计算新数据与样本数据集中每条数据的距离。 2、对求得的所有距离进行排序(从小到大,越小表示越相似)。...

weixin_44790749的博客 252

Neo4j图数据库Python实战:从关系建模到生产部署

图数据库是一种以节点、关系和属性为核心的数据模型,专为处理高度关联的数据而设计,其本质区别于关系型数据库的表格范式。它基于图论原理,通过高效的关系遍历(如Cypher的MATCH与变量路径)实现毫秒级复杂关联查询,在反欺诈、知识图谱、推荐系统等场景中展现出不可替代的技术价值。相比SQL的JOIN嵌套与递归CTE,图查询更贴近业务语义,天然支持社交网络、资金链路、IT依赖等网状结构建模。本文聚焦Neo4j与Python协同实践,涵盖Cypher查询优化、标签与关系建模规范、LOAD CSV与UNWIND批量导

weixin_30613433的博客 548

K近邻法及其实现

KNN(K-Nearest Neighbor) 算法是机器学习算法中最基础的算法之一,它既能用于分类,又能用于回归。有别于其他经典的机器学习算法,其没有显式的学习过程。 模型:利用训练数据划分特征向量空间,其结果就是最终算法模型。 基本思想是:任意 N 维输入向量对应于特征空间的一点,输出为该特征向量所对应的类别标签或者预测值。 KNN 分类 KNN 用于分类,其过程简单的说就是: 输入需要预测...

何足道的博客 464

Pandas金融统计实战:从数据清洗到回归策略回测

在金融数据分析中,数据组织、统计计算与策略验证往往环环相扣。Pandas作为Python数据分析的核心工具,承担着从行情读取、缺失值处理到收益率与波动率计算的关键职责,为后续的统计建模提供了干净且对齐的数据底座。理解简单收益率与对数收益率的差异、掌握滚动窗口与相关矩阵的用法,是进一步开展因子分析的基础。借助statsmodels进行线性回归,可以量化因子与未来收益之间的关系,并通过显著性检验筛选有效特征。而回归预测值转化为交易信号后,还需经过回测环节验证策略的可行性,同时注意手续费、滑点与前视偏差对结果的影

weixin_34269583的博客 314

Apache Parquet C++实战:从环境搭建到高性能数据读写

列式存储是一种针对分析型查询优化的数据组织方式,其核心原理是将数据按列而非按行进行物理存储。这种设计通过提高数据局部性、利用列内数据同质性实现高效压缩,并支持列裁剪技术,从而大幅减少I/O数据量,显著提升查询性能。在数据密集型应用中,列式存储技术为海量数据分析、实时计算和交互式查询提供了关键支撑。Apache Parquet作为大数据生态中广泛采用的列式存储格式,凭借其高效的压缩算法、丰富的元数据支持和跨语言兼容性,已成为连接Hadoop、Spark等计算框架与底层数据存储的事实标准。对于追求极致性能的C+

weixin_33736832的博客 362

决策树-李航

1、所谓决策树模型,是通过重要性依次向下绘出的,越重要的越在上面。 决策树有节点和有向边组成。结点有两种类型,内部节点和叶结点,内部节点表示一个属性,叶子节点表示一个类。 决策树的数学意义在于 ,条件概率分布。举一个简单的例子:一个人去银行贷款,他的年龄、收入、房子、车子都能决定他是否能贷到款。我们需要判断到底哪个是最重要的,只需要判断出P(贷到款 | (年龄、收入、房车))哪个条件概率最大就...

weixin_30878501的博客 141
上一篇: 码小会讲解【列表】——Python学习秘籍
下一篇: 【收藏贴】关于刷题的5点妙招,你必须得知道!
码小会
博客等级 码龄6年 30粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值