课时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 对比进行。

以上是字典的使用方法。

相关文章
|
JSON JavaScript 前端开发
iOS小技能: 开发 uni-app 原生插件(支持iOS Extension)
术语:uni原生插件指的是将`原生开发的功能按照规范封装成插件包`,然后即可在 uni-app 前端项目中通过js调用原生能力。
1918 0
iOS小技能: 开发 uni-app 原生插件(支持iOS Extension)
|
2月前
|
存储 物联网 机器人
RFID仓库出入库步入智能化趋势
RFID技术在仓储出入库中实现自动识别、批量处理与实时联动,大幅提升效率,降低错误率,推动仓储物流向智能化、数字化转型。
|
5月前
|
机器学习/深度学习 人工智能 自然语言处理
DeepSeek vs. ChatGPT:大语言模型的技术分野与应用边界全解析
DeepSeek更适合中文环境下对语言理解和生成准确性要求高、专业领域内容生成需求大,以及对成本敏感、实时性要求高和硬件资源有限的场景。ChatGPT则更适合需要处理多种语言,尤其是以英文等西方语言为主,以及对创意写作、开放域对话有需求,对成本和实时性要求不高且有强大硬件支持的场景。两款模型各有侧重,用户可根据具体需求选择最适合的工具。
|
10月前
|
监控 数据可视化 数据挖掘
惊叹!燕云十六声运营团队靠它提升工作效率!
在游戏行业竞争激烈的2025蛇年新春,燕云十六声团队通过选择合适的可视化协作软件实现了高效工作。板栗看板以其高度可视化的任务管理、灵活的任务分配和强大的文件管理功能脱颖而出。Trello、Asana、Monday.com、Zeplin和Slack等工具也各具特色,提供了丰富的插件、权限管理和实时沟通等功能,助力团队应对巨大工作量和协作挑战,提升工作效率,打造更优质的游戏产品。
462 12
|
11月前
|
IDE 编译器 开发工具
【C语言】全面系统讲解 `#pragma` 指令:从基本用法到高级应用
在本文中,我们系统地讲解了常见的 `#pragma` 指令,包括其基本用法、编译器支持情况、示例代码以及与传统方法的对比。`#pragma` 指令是一个强大的工具,可以帮助开发者精细控制编译器的行为,优化代码性能,避免错误,并确保跨平台兼容性。然而,使用这些指令时需要特别注意编译器的支持情况,因为并非所有的 `#pragma` 指令都能在所有编译器中得到支持。
999 41
【C语言】全面系统讲解 `#pragma` 指令:从基本用法到高级应用
|
6月前
|
数据安全/隐私保护
Dataphin V4.5:批量导入导出目录及资产信息配置,提升资产盘点效率
数据资产运营常需跨部门协作,使用在线文档梳理信息并快速录入系统至关重要。Dataphin 支持通过 Excel 模板批量导入专题、目录及资产配置,大幅提升效率。场景包括:1) 专题目录初始化配置,快速完成多层级目录定义;2) 批量修改专题目录,适配组织结构调整;3) 批量修改资产信息,实现线上协同编辑与更新。系统还提供异常预检与高亮提示,确保导入准确性,助力高效资产盘点与运营。
214 0
【2024美国大学生数学建模竞赛】2024美赛E题 问题分析、数学模型、实现代码、完整论文
本文是关于2024美国大学生数学建模竞赛E题的预告,承诺在题目发布后提供问题分析、数学模型、实现代码和完整论文的逐步更新。
404 2
【2024美国大学生数学建模竞赛】2024美赛E题 问题分析、数学模型、实现代码、完整论文
|
安全 算法 网络协议
真实世界的密码学(二)(3)
真实世界的密码学(二)
512 4
|
人工智能 运维 NoSQL
动态精选|阿里云2月产品与服务更新盘点
阿里云宣布全面降价,核心产品如云服务器、对象存储和云数据库降价高达55%,增强人工智能平台PAI的功能,推出EAS-Serverless模型服务和DLC的闲时资源利用。云数据库Redis版支持离线全量Key分析,MongoDB版增加分片集群按key闪回功能。此外,还发布了文档AI助手、服务器迁移中心的一键迁移功能、应用高可用服务的多活容灾2.0版本、云安全中心的无代理检测商业化版本、云解析DNS流量分析、Salesforce on Alibaba Cloud的Sandbox预览版以及OpenAPI Explorer的SID等新功能。
459 0