课时16:字典的使用_1

简介: 本内容介绍字典的使用,涵盖创建、访问、修改字典的基本操作。主要包括:1. 创建字典:可以通过大括号`{}`、`dict()`函数、双值子序列转换等方式创建字典。2. 访问字典:使用`d[key]`或`get()`方法获取键对应的值,`get()`方法在键不存在时不会抛出异常,而是返回`None`或指定的默认值。3. 修改字典:通过`d[key] = value`直接赋值修改或添加键值对,`setdefault()`方法用于添加键值对或返回已存在的键值,`update()`方法可以合并两个字典。

字典的使用_1

 

摘要:本内容为字典的使用介绍。

 

01.字典的使用基础介绍

                   

1.1字典的使用的基础信息

已经初步了解了字典的相关知识,现在进一步探讨字典的各种操作。关于字典的操作,应当以官方文档为基准。官方文档是权威的参考资料,或者可以参考官方网站上的文档。由于离线文档可能出现乱码问题,也可以查阅离线文档,确保对相关位置有充分的了解

image.png

点击如下:

image.png

image.png

字典位置如下:

image.png

 

点击进入下方说明:

image.png

同样可以查看离线版:

image.png

  image.png


找到如下:

 

image.png

image.png

新建一个文件:

image.png

image.png

 

1.2创建字典

(1)第一种方式:使用{ }

语法:{k1:v1,k2:v2,k3:v3} 键和值之间用冒号隔开,多项之间使用逗号隔开。

(2)第二种方式:使用Dict( )函数来创建字典

每一个参数都是一个键值对,参数名就是键,参数名就是值

(这种方式创建的字典,key都是字符串)

D=dict(name='孙悟空',age=18,gender='男') //给多个函数传参数
Print(d,type(d))

保存执行:

image.png

(3)第三种方式: 也可以将一个包含有双值子序列的序列转换为字典

l 双值序列序列中只有两个值,比如:[1,2]('a',3) 、‘ab

l 子序列,如果序列中的元素也是序列,那么称这个元素为子序列

例如:[(1,2),(3,5)],发现列表里放了两个元组做元素,那么这两个元组就是就是这个列表的子序列。如果一个元组中都是双值子序列,就可以把这个列表转换为字典。

D=Dict([('Name','孙悟'),('Age'18)]) //现在就是一个列表,这个列表里还是序列,还是双值子序列,那么就可以转换为一个字典。

为什么采用双值子序列,双值一个值作为 Key,一个值作为 Value ,此处 Name 作为 Key,值作为 Value,Age 作为 Key,18 作为Value。

print(d ,type(d))

执行:

image.png

通过 Dict 将包含双值子序列的序列转换为列表,此方法会用到,多采用特殊情况,一般情况下使用较少。

(4)第四种方式:Len()获取字典中键值对的个数,就是查看字典中有几个键值对,与序列一致。

Print(len(d))

输出执行:

image.png

下移:

D=dict(name='孙悟空',age=18,gender='男')

保存执行:变成3个

image.png

(5)第五种方式:

l In检查字典中是否包含指定的键

l Not in检查字典中是否不包含指定的键

Print('name'in d)  检查D中是否有 Name 的键

保存执行:

image.png

Print('hello'in d)  检查D当中是否有 Hello 键

保存执行:

image.png

In检查字典中是否包含指定的键,不是检查值的,Not in不在演示。

(6)第六种方式:获取字典中的值,根据键来获取值

#语法:d[key]

Print(d['name']) Name必须加上字符串,引号,因为键有引号。

保存执行:

image.png

若不加引号:

Print(d[age])

保存执行:

image.png

无加引号作为变量去处理,所以一定要加引号,因为  Key 本身加引号。

若为Age=18这种形式创建会自动加入变成字符串,保存执行:

image.png

某些情况下不能加引号则不加,

N='name
print(d[n])

N为变量实际值为Name

保存执行:

image.png

此处加上引号就不为变量。

执行结果:

image.png

若为变量不加引号,字符串需要添加引号。其他Number就写Number,布尔值就写布尔值,None就写None。但是一般为字符串。

(7)第七种方式:通过[ ]来获取值时,如果键不存在,会抛出异常KeyError

image.png

使用时小心,明确在字典中包含Key,若没有则不使用。不确定可使用In检查,若返回True则使用,若不是则不用。

(8)第八种方式 此处有其他方式:

Get(key[,default])


image.png

#Get(key[,default]) 该方法用来根据键来获取字典中的值

Print(d.get(’name'))

保存执行:

image.png

(d.get(’name'))(d[age])方法基本一致

print(d.get('hello'))

此处无Hello键。

保存执行:

image.png

 

若中括号没有则会报错,此处不会。

#如果获取的键在字典中不存在,会返回None,不会报错。

Get有可选择的参数Defauit

Print(d.get('name','默认值'))

保存执行:

image.png

Print(d.get('hello','默认值'))

保存执行:

image.png

如果Hello不存在则会返回默认值。

#也可以指定一个默认值,来作为第二个参数,这样获取不到值时将会返回默认值

Get比中括号更安全,不会出现异常。

 

1.3修改字典

(1)第一种方式  Name=孙悟空进行修改

#D[key]=Value  #如果key存在则覆盖,不存在则添加
D['name']=’sunwukong' #修改字典的Key-value
Print(d)

保存执行:

image.png

D['address']=’花果山' #向字典中添加Key-value

保存执行:

image.png

(2)第二种方式 另一种修改方式:

image.png

#Setdefault(key[,default])可以用来向字典中添加Key-value

上述文档有很详细的描述,如果Key在字典中,会返回值,如果不在插入Key根据默认值返回默认值。

D.setdefault('name','猪八戒')
Print(d)

保存执行:

image.png

#如果Key已经存在于字典中,则返回Key的值,不会对字典做任何操作

#如果Key不存在,则向字典中添加这个Key,并设置Value

设置Name的Key,若存在会有返回值。

Result=d.setdefault('name','猪八戒')
Result是Key的值
Print('result =',result)

Name已经存在,后面值无意义,直接返回:

image.png

Result=d.setdefault('hello','猪八戒')

Hello值本身不存在,保存执行:

image.png

Setdefault是灵活的方法,最终:有就返回,没有就添加。

(3)第三种方法:

image.png

#update([other])  属于添加的方法
#将其他的字典中的Key-value添加到当前字典中
D={'a':1,b':2,'c':3}
D2={'d":4,'e':5,'f':6}
D.update(d2)
Print(d)

保存执行:

image.png

上图包含六个键,因为两个字典合并在D中,D2合并在D中。对D2进行更新。

若如下情况:

D={'a':1,b':2,'c':3}
D2={'d":4,'e':5,'f':6,’a’:7}

两个键有冲突:

保存执行:

image.png

D中的A被D2中的所替换。

#如果有重复的Key,则后边的会替换到当前的,新A会替换旧A。

第一种创建字典三方式:

image.png

Len()获取字典中键值对的个数、In字典中包含或者不包含某个键

l 通过Key或者Get来获取值

l 通过Key来修改,没有就添加

l 通过Setdefault进行修改

update可以将其他的字典中的Key-value添加到当前字典中,若重复会被当前的所替代。

相关文章
|
数据采集 机器学习/深度学习 人工智能
大数据分析案例-用RFM模型对客户价值分析(聚类)
大数据分析案例-用RFM模型对客户价值分析(聚类)
2009 0
大数据分析案例-用RFM模型对客户价值分析(聚类)
字典的遍历
字典的遍历是将字典中的键值对逐个取出进行操作。主要通过三种方法:`keys()`、`values()` 和 `items()`。`keys()` 返回所有键,`values()` 返回所有值,而 `items()` 则返回键值对组成的元组。其中,`keys()` 和 `items()` 更常用,因为它们可以同时获取键和值,便于进一步处理。代码示例展示了如何使用这三种方法遍历字典并输出结果。
|
Cloud Native Linux Docker
云原生之使用Docker部署ftp服务器
云原生之使用Docker部署ftp服务器
1011 0
|
1月前
|
机器学习/深度学习 自然语言处理 监控
23_Transformer架构详解:从原理到PyTorch实现
Transformer架构自2017年Google发表的论文《Attention Is All You Need》中提出以来,彻底改变了深度学习特别是自然语言处理领域的格局。在短短几年内,Transformer已成为几乎所有现代大型语言模型(LLM)的基础架构,包括BERT、GPT系列、T5等革命性模型。与传统的RNN和LSTM相比,Transformer通过自注意力机制实现了并行化训练,极大提高了模型的训练效率和性能。
|
存储 SQL 人工智能
Hologres 4.0全新发布:AI时代的一站式多模态分析平台
2025年云栖大会,Hologres发布全新4.0版本升级,以“AI时代的一站式多模态分析平台”为核心理念,全面展示了Hologres在结构化、半结构化与非结构化数据分析能力上的重大突破,特别是在OLAP分析、点查、向量检索、全文检索、湖仓协同及AI Function集成等方面的领先优势,刷新ClickBench、JSONBench、VectorDBBench等多项榜单,登顶第一。
|
9月前
|
机器学习/深度学习 数据采集 自然语言处理
深度学习实践技巧:提升模型性能的详尽指南
深度学习模型在图像分类、自然语言处理、时间序列分析等多个领域都表现出了卓越的性能,但在实际应用中,为了使模型达到最佳效果,常规的标准流程往往不足。本文提供了多种深度学习实践技巧,包括数据预处理、模型设计优化、训练策略和评价与调参等方面的详细操作和代码示例,希望能够为应用实战提供有效的指导和支持。
|
算法 安全 关系型数据库
后端技术在现代软件开发中的重要性与应用
本文将深入探讨后端技术在现代软件开发中的关键作用及其广泛应用。我们将从后端开发的基本概念入手,逐步解析其在构建高性能、可扩展和安全的软件系统中的核心地位。通过具体案例,展示不同后端技术如何满足各种复杂业务需求,从而帮助企业实现数字化转型。最后,文章还将探讨未来后端技术的发展趋势,为开发者提供前瞻性的指导。
|
9月前
|
存储 人工智能 自然语言处理
AI 剧本生成与动画创作解决方案体验报告
AI 剧本生成与动画创作解决方案体验报告
413 40
|
8月前
|
弹性计算 运维 安全
课时1:第1天:云服务器ECS是什么
云服务器ECS是阿里云提供的弹性计算服务,支持快速构建稳定、安全的应用。其核心特点包括:1. 简单高效、弹性伸缩;2. 作为应用的基础运行环境;3. 提供纵向和横向扩展能力;4. 拥有高稳定性(99.95%)、数据安全性(99.99%)及自动宕机迁移等优势;5. 免费提供DDoS防护等安全措施,降低运维成本,提升业务连续性。
250 0
|
存储 安全 Python
Python 遍历字典的这6种方法,你都掌握了吗
Python提供了多种遍历字典的方法,可以根据实际需要选择合适的方法。无论是需要单独访问键或值,还是同时需要键和值,Python的字典都提供了简单而有效的方式来处理这些需求。