课时17:字典的使用_2

简介: 本内容介绍字典的基本使用方法,涵盖删除字典中的键值对、清空字典、浅复制等操作。通过 `del` 语句可删除指定的键值对,`pop` 方法可按键删除并返回对应的值,`popitem` 则随机删除一个键值对,默认删除最后一个。`clear` 方法用于清空整个字典。`copy` 方法实现字典的浅复制,即创建一个新的字典对象,但内部的可变对象仍共享引用。注意,浅复制不会递归复制嵌套的可变对象,适合大多数场景,而深复制虽能完全复制所有内容,但性能较低,较少使用。

字典的使用_2

 

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

 

01.字典的使用基础介绍

1.1字典的与使用基础信息

接下来进行删除的详细讲解,删除字典中的间值对。Print(d) ,可以使用 Del 来删除字典中的 Key-value ,除了删除元素,也可以删除字典中的间值对和变量。

Print(d)

保存执行:

image.png

Del d['a']
Print(d)

保存,执行:

image.png

Del d['a']
Del d['b']
Print(d)

保存,执行:

image.png

 

此处有两个方法:Pop 、Popitem

Popitem( )可以随机删除字典中的一个键值对,一般都会删除最后一个键值对

D.popitem( )

先进性打印:

image.png


D.popitem( )
Print(d)

保存,执行:f没了

image.png

D.popitem( )
D.popitem( )
Print(d)

保存,执行:e也没有了

image.png

Result d.popitem()
Print('result =',result)

保存,执行:返回‘e’,5

image.png

删除之后,它会将删除的Key-value作为返回值返回返回的是一个元组,元组中有两个元素,第一个元素是删除的 Key ,第二个是删除的 Value

Pop(key[,default]) //多个参数,可以传key,根据key删除字典中的key-value
Result d.pop('f')
Print('result ='result)

保存,执行:

image.png

Result d.pop('d')
Print('result ='result)

保存,执行:d没了,d已经被删了,返回值4,会将被删除的Value返回!返回的是值

image.png

Result d.pop('d')
Result d.pop('z')
Print('result ='result)

保存执行:如果删除不存在的key,会抛出异常

image.png

Result d.pop('d')
Result d.pop('z',’这是默认值’)
Print('result ='result)

保存执行:如果指定了默认值,再删除不存在的 Key 时,不会报错,而是直接返回默认值

image.png

 

Result d.pop('d')
Result d.pop('z',’这是默认值’)
Del d['z']
Print('result ='result)
Print(d)

保存执行: z不存在,报错

image.png

Result d.pop('d')
Result d.pop('z',’这是默认值’)
Result=d.popitem( )
Print('result ='result)
Print(d)

保存执行:

image.png


Result=d.popitem( )
Result=d.popitem( )
Result=d.popitem( )

调用三次,保存执行:空了

image.png

再次调用一个:

Result=d.popitem( )
Result=d.popitem( )
Result=d.popitem( )
Result=d.popitem( )

保存执行:报错

image.png

 

当使用 Popitem( )删除一个空字典时,会抛出异常KeyError:'popitem( ):dictionary is empty

Clear( )用来清空字典

image.png

 

删除所有项。

Result=d.popitem( )
Result=d.popitem( )
Result=d.popitem( )
Result=d.popitem( )
D. clear( )

执行结果:没有了

image.png

1.2接下来说明Copy

image.png

Copy( ) 该方法用于对字典进行浅复制,某些情况下需要创建副本

D={'a':1,b':2,'c':3}
D2=d
Print('d =',d)
Print('d2 ',d2)

保存,执行:打印的结果一样,此处不算作复制,D,D2指向同一个对象,到此对象仅有一个,都是同一个对象,所以并不叫复制。

image.png

D={'a':1,b':2,'c':3}
D2=d
d['b']=10
Print('d =',d)
Print('d2 ',d2)

保存,执行:

image.png

D={'a':1,b':2,'c':3}
D2=d.copy
Print('d =',d)
Print('d2 ',d2)

保存,执行:这时是一样的,但是区别很大区别在于是两个对象。

image.png

D={'a':1,b':2,'c':3}
D2=d.copy
Print('d =',d,id(d))
Print('d2 ',d2,id(d2))

保存,执行:显示ID不同

image.png

若D2=D,则保存执行:ID相同

image.png

复制以后的对象,和原对象是独立,修改一个不会影响另一个

D={'a':1,b':2,'c':3}
D2=d.copy
d[’a']=100
Print('d =',d,id(d))
Print('d2 ',d2,id(d2))

执行效果:

image.png

注意:浅复制仅复制对象中的值,假如字典中的值还作为一个字典

如下例:

D={'a':1,b':2,'c':3}
D2=d.copy
D={('a':{'name':'孙悟空',’age’:18},b':2,'c':3}
Print('d =',d,id(d))
Print('d2 ',d2,id(d2))

保存执行:

image.png

D2=d.copy()

保存执行:两个一样,但是地址不一样

image.png

 

D2['a']['name']=’猪八戒’  //实际上修改的a的 Name 值

保存执行:两个都变了,


image.png

注意浅复制会简单复制对象内部的值,如果值也是一个可变对象,这个可变对象不会被复制


{'name':'孙悟空',’age’:18}是一个字典,字典内部的字典,复制仅复制字典的本身,若内部还有一个字典,此字典是不会被复制,直接将引用的地址加入,所以不会被复制,则为一个浅复制。对对象内部的对象不会被真正的复制。一般情况下,均使用浅复制。深层次复制将所有均复制,会出现性能差的问题,所以深层次复制会使用比较少,较多使用浅复制。关于序列 Copy 对比进行。

以上是字典的使用方法。

相关文章
|
存储 数据可视化 Python
使用Python进行数据可视化(三、处理csv文件)
使用Python进行数据可视化(三、处理csv文件)
268 2
|
1月前
|
传感器 人工智能 算法
数字孪生技术全景解析:从核心原理到产业实践
数字孪生技术通过虚实映射、实时联动,推动工业、城市、文化等领域智能化升级。济南奥维数字科技凭借自主引擎与全栈能力,打造多个标杆应用,助力“数字济南”建设,引领产业生态发展。(239字)
601 4
|
JSON JavaScript 前端开发
iOS小技能: 开发 uni-app 原生插件(支持iOS Extension)
术语:uni原生插件指的是将`原生开发的功能按照规范封装成插件包`,然后即可在 uni-app 前端项目中通过js调用原生能力。
1962 0
iOS小技能: 开发 uni-app 原生插件(支持iOS Extension)
|
9月前
|
移动开发 数据挖掘 开发者
服务器发送事件(SSE)在现代Web开发中的关键作用
服务器发送事件(SSE)是HTML5标准协议,用于服务器主动向客户端推送实时数据,适合单向通信场景。相比WebSocket,SSE更简洁高效,基于HTTP协议,具备自动重连、事件驱动等特性。常见应用场景包括实时通知、新闻推送、数据分析等。通过Apipost等工具可轻松调试SSE,助力开发者构建高效实时Web应用。示例中,电商平台利用SSE实现秒杀活动通知,显著减少延迟并简化架构。掌握SSE技术,能大幅提升用户体验与开发效率。
|
Rust
【一起学Rust · 项目实战】命令行IO项目minigrep——接收命令行参数与读取文件内容
【一起学Rust · 项目实战】命令行IO项目minigrep——接收命令行参数与读取文件内容
235 0
【一起学Rust · 项目实战】命令行IO项目minigrep——接收命令行参数与读取文件内容
|
9月前
|
数据采集 监控 数据挖掘
静态IP代理的应用场景及企业使用指南
静态IP代理提供固定IP地址,具备高稳定性和安全性,适用于跨境电商、社交媒体管理、SEO、网络数据采集、远程办公及爬虫分析等场景。企业通过选择可靠的供应商、配置网络设置并合理应用,可有效提升业务效率和安全性。例如,某电商公司利用静态住宅代理IP进行数据采集,成功分析竞争对手策略,实现销售额20%的增长。
382 1
|
7月前
|
数据安全/隐私保护
Dataphin V4.5:批量导入导出目录及资产信息配置,提升资产盘点效率
数据资产运营常需跨部门协作,使用在线文档梳理信息并快速录入系统至关重要。Dataphin 支持通过 Excel 模板批量导入专题、目录及资产配置,大幅提升效率。场景包括:1) 专题目录初始化配置,快速完成多层级目录定义;2) 批量修改专题目录,适配组织结构调整;3) 批量修改资产信息,实现线上协同编辑与更新。系统还提供异常预检与高亮提示,确保导入准确性,助力高效资产盘点与运营。
236 0
|
11月前
|
监控 数据可视化 数据挖掘
惊叹!燕云十六声运营团队靠它提升工作效率!
在游戏行业竞争激烈的2025蛇年新春,燕云十六声团队通过选择合适的可视化协作软件实现了高效工作。板栗看板以其高度可视化的任务管理、灵活的任务分配和强大的文件管理功能脱颖而出。Trello、Asana、Monday.com、Zeplin和Slack等工具也各具特色,提供了丰富的插件、权限管理和实时沟通等功能,助力团队应对巨大工作量和协作挑战,提升工作效率,打造更优质的游戏产品。
504 12
|
IDE 编译器 开发工具
【C语言】全面系统讲解 `#pragma` 指令:从基本用法到高级应用
在本文中,我们系统地讲解了常见的 `#pragma` 指令,包括其基本用法、编译器支持情况、示例代码以及与传统方法的对比。`#pragma` 指令是一个强大的工具,可以帮助开发者精细控制编译器的行为,优化代码性能,避免错误,并确保跨平台兼容性。然而,使用这些指令时需要特别注意编译器的支持情况,因为并非所有的 `#pragma` 指令都能在所有编译器中得到支持。
1098 41
【C语言】全面系统讲解 `#pragma` 指令:从基本用法到高级应用
|
机器学习/深度学习 存储 人工智能
大白话讲清楚:什么是 Langchain 及其核心概念
大白话讲清楚:什么是 Langchain 及其核心概念