Python学习之路-字典的使用2(删除,复制)

简介: 开发者学堂课程,了解Python语言的基本特性、编程环境的搭建、语法基础、算法基础等,了解Python的基本数据结构,对Python的网络编程与Web开发技术具备初步的知识,了解常用开发框架的基本特性,以及Python爬虫的基础知识。课程地址:https://developer.aliyun.com/learning/course/600/detail/8717

(一)删除

关于字典里面键值对的删除,可以使用del来删除字典中的 key-value,也可以用来删除变量。

aa={"a":1,"b":2,"c":3,"f":4,"d":5,"e":6}
delaa['a']
delaa['b']
print(aa)

得到的结论是:

{'c': 3, 'f': 4, 'd': 5, 'e': 6}


Popitem 可以随机删除字典中的键值对,一般都会删除最后一个键值对,删除之后,他会将删除的 key-value 作为返回值返回,返回的是由两个元素的元组,第一个元素是删除的 key,第二个是删除的 value。

aa={"a":1,"b":2,"c":3,"f":4,"d":5,"e":6}
print('原来的数据:',aa)
result=aa.popitem()
print('删除后的数据:',aa)
print('删除的数据:',result)

原来的数据: {'a': 1, 'b': 2, 'c': 3, 'f': 4, 'd': 5, 'e': 6}

删除后的数据: {'a': 1, 'b': 2, 'c': 3, 'f': 4, 'd': 5}

删除的数据: ('e', 6)

当使用 popitme()删除一个空字典时,会抛出异常

     KeyError: 'popitem(): dictionary is empty'


pop 是根据 key 删除字典中的 key-value,会将被删除的 value 返回,如果删除不存在的 key,会抛出异常;指定了默认值,再删除不存在的 key 时,不会报错,而是直接返回默认值。

语法:pop(key[,default])

aa={"a":1,"b":2,"c":3,"f":4,"d":5,"e":6}
# 根据key删除字典中的key-valueresult=aa.pop('f')
print('result=',result)
print(aa)

得到的结论是:

result= 4

{'a': 1, 'b': 2, 'c': 3, 'd': 5, 'e': 6}


如果删除不存在的 key,会抛出异常 KeyError: 'g'

aa={"a":1,"b":2,"c":3,"f":4,"d":5,"e":6}
# 根据key删除字典中的key-valueresult=aa.pop('g')

指定了默认值,再删除不存在的 key 时,不会报错,而是直接返回默认值

aa={"a":1,"b":2,"c":3,"f":4,"d":5,"e":6}
# 根据key删除字典中的key-valueresult=aa.pop('g','这是默认值') # 指定默认值print('result=',result)
print(aa)

得到的结论是:

result= 这是默认值

{'a': 1, 'b': 2, 'c': 3, 'f': 4, 'd': 5, 'e': 6}


clear,用来清空字典。

(二)复制

copy(),用于对字典进行浅复制

aa={"a":1,"b":2,"c":3,"f":4,"d":5,"e":6}
bb=aa.copy()
print('aa=',aa)
print('aa的id:',id(aa))
print('bb=',bb)
print('bb的id:',id(bb))

得到的结论是:

aa= {'a': 1, 'b': 2, 'c': 3, 'f': 4, 'd': 5, 'e': 6}

aa的id: 4344348864

bb= {'a': 1, 'b': 2, 'c': 3, 'f': 4, 'd': 5, 'e': 6}

bb的id: 4344349120

可以看到 id 是不一样的,复制以后的对象和原对象是独立的,修改一个不会影响另一个。而这个浅复制是指只复制对象内部值,如果值也是一个可变对象,这个可变对象不会被复制。

aa={"a":{'name':'孙悟空','age':18},"b":2,"c":3,"f":4,"d":5,"e":6}
bb=aa.copy()
bb["a"]['name']='猪八戒'print('aa=',aa)
print('aa的id:',id(aa))
print('bb=',bb)
print('bb的id:',id(bb))

得到的结论是:

aa= {'a': {'name': '猪八戒', 'age': 18}, 'b': 2, 'c': 3, 'f': 4, 'd': 5, 'e': 6}

aa的id: 4478599680

bb= {'a': {'name': '猪八戒', 'age': 18}, 'b': 2, 'c': 3, 'f': 4, 'd': 5, 'e': 6}

bb的id: 4478599488


相关文章
|
6月前
|
数据库 Python
Python学习的自我理解和想法(18)
这是我在学习Python第18天的总结,内容基于B站千锋教育课程,主要涉及面向对象编程的核心概念。包括:`self`关键字的作用、魔术方法的特点与使用(如构造函数`__init__`和析构函数`__del__`)、类属性与对象属性的区别及修改方式。通过学习,我初步理解了如何利用这些机制实现更灵活的程序设计,但深知目前对Python的理解仍较浅显,欢迎指正交流!
|
8天前
|
JavaScript Java 大数据
基于python的网络课程在线学习交流系统
本研究聚焦网络课程在线学习交流系统,从社会、技术、教育三方面探讨其发展背景与意义。系统借助Java、Spring Boot、MySQL、Vue等技术实现,融合云计算、大数据与人工智能,推动教育公平与教学模式创新,具有重要理论价值与实践意义。
|
5月前
|
安全 数据安全/隐私保护 Python
Python学习的自我理解和想法(27)
本文记录了学习Python第27天的内容,主要介绍了使用Python操作PPTX和PDF的技巧。其中包括通过`python-pptx`库创建PPTX文件的详细步骤,如创建幻灯片对象、选择母版布局、编辑标题与副标题、添加文本框和图片,以及保存文件。此外,还讲解了如何利用`PyPDF2`库为PDF文件加密,涵盖安装库、定义函数、读取文件、设置密码及保存加密文件的过程。文章总结了Python在处理文档时的强大功能,并表达了对读者应用这些技能的期待。
|
7天前
|
存储 JSON 数据管理
Python字典:高效数据管理的瑞士军刀
Python字典基于哈希表实现,提供接近O(1)的高效查找,支持增删改查、遍历、合并等丰富操作,广泛应用于计数、缓存、配置管理及JSON处理。其灵活性与性能使其成为数据处理的核心工具。
168 0
|
3月前
|
算法 IDE 测试技术
python学习需要注意的事项
python学习需要注意的事项
200 57
|
1月前
|
存储 缓存 安全
Python字典:从入门到精通的实用指南
Python字典如瑞士军刀般强大,以键值对实现高效数据存储与查找,广泛应用于配置管理、缓存、统计等场景。本文详解字典基础、进阶技巧、实战应用与常见陷阱,助你掌握这一核心数据结构,写出更高效、优雅的Python代码。
44 0
|
3月前
|
JSON 数据安全/隐私保护 数据格式
拼多多批量下单软件,拼多多无限账号下单软件,python框架仅供学习参考
完整的拼多多自动化下单框架,包含登录、搜索商品、获取商品列表、下单等功能。
|
3月前
|
机器学习/深度学习 数据安全/隐私保护 计算机视觉
过三色刷脸技术,过三色刷脸技术教程,插件过人脸python分享学习
三色刷脸技术是基于RGB三通道分离的人脸特征提取方法,通过分析人脸在不同颜色通道的特征差异
|
3月前
|
监控 数据安全/隐私保护 Python
微信自动抢红包免费版,2025微信抢红包神器,微信红包挂苹果版【python仅供学习】
这个模拟项目包含5个模块:核心监控逻辑、用户界面、配置管理、实用工具和主程序入口
|
6月前
|
Python
Python学习的自我理解和想法(19)
这是一篇关于Python面向对象学习的总结,基于B站千锋教育课程内容编写。主要涵盖三大特性:封装、继承与多态。详细讲解了继承(包括构造函数继承、多继承)及类方法与静态方法的定义、调用及区别。尽管开学后时间有限,但作者仍对所学内容进行了系统梳理,并分享了自己的理解,欢迎指正交流。

热门文章

最新文章

推荐镜像

更多