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


相关文章
|
3月前
|
数据库 Python
Python学习的自我理解和想法(18)
这是我在学习Python第18天的总结,内容基于B站千锋教育课程,主要涉及面向对象编程的核心概念。包括:`self`关键字的作用、魔术方法的特点与使用(如构造函数`__init__`和析构函数`__del__`)、类属性与对象属性的区别及修改方式。通过学习,我初步理解了如何利用这些机制实现更灵活的程序设计,但深知目前对Python的理解仍较浅显,欢迎指正交流!
|
2月前
|
安全 数据安全/隐私保护 Python
Python学习的自我理解和想法(27)
本文记录了学习Python第27天的内容,主要介绍了使用Python操作PPTX和PDF的技巧。其中包括通过`python-pptx`库创建PPTX文件的详细步骤,如创建幻灯片对象、选择母版布局、编辑标题与副标题、添加文本框和图片,以及保存文件。此外,还讲解了如何利用`PyPDF2`库为PDF文件加密,涵盖安装库、定义函数、读取文件、设置密码及保存加密文件的过程。文章总结了Python在处理文档时的强大功能,并表达了对读者应用这些技能的期待。
|
3月前
|
数据采集 机器学习/深度学习 自然语言处理
Python学习的自我理解和想法(16)
这是我在B站千锋教育课程中学Python的第16天总结,主要学习了`datetime`和`time`模块的常用功能,包括创建日期、时间,获取当前时间及延迟操作等。同时简要介绍了多个方向的补充库,如网络爬虫、数据分析、机器学习等,并讲解了自定义模块的编写与调用方法。因开学时间有限,内容精简,希望对大家有所帮助!如有不足,欢迎指正。
|
12天前
|
数据采集 存储 监控
抖音直播间采集提取工具,直播间匿名截流获客软件,Python开发【仅供学习】
这是一套基于Python开发的抖音直播间数据采集与分析系统,包含观众信息获取、弹幕监控及数据存储等功能。代码采用requests、websockets和sqlite3等...
|
3月前
|
Python
Python学习的自我理解和想法(19)
这是一篇关于Python面向对象学习的总结,基于B站千锋教育课程内容编写。主要涵盖三大特性:封装、继承与多态。详细讲解了继承(包括构造函数继承、多继承)及类方法与静态方法的定义、调用及区别。尽管开学后时间有限,但作者仍对所学内容进行了系统梳理,并分享了自己的理解,欢迎指正交流。
|
2月前
|
存储 搜索推荐 算法
Python学习的自我理解和想法(28)
本文记录了学习Python第28天的内容——冒泡排序。通过B站千锋教育课程学习,非原创代码。文章详细介绍了冒泡排序的起源、概念、工作原理及多种Python实现方式(普通版、进阶版1和进阶版2)。同时分析了其时间复杂度(最坏、最好、平均情况)与空间复杂度,并探讨了实际应用场景(如小规模数据排序、教学示例)及局限性(如效率低下、不适用于高实时性场景)。最后总结了冒泡排序的意义及其对初学者的重要性。
|
2月前
|
Python
Python学习的自我理解和想法(26)
这是一篇关于使用Python操作Word文档的学习总结,基于B站千锋教育课程内容编写。主要介绍了通过`python-docx`库在Word中插入列表(有序与无序)、表格,以及读取docx文件的方法。详细展示了代码示例与结果,涵盖创建文档对象、添加数据、设置样式、保存文件等步骤。虽为开学后时间有限下的简要记录,但仍清晰梳理了核心知识点,有助于初学者掌握自动化办公技巧。不足之处欢迎指正!
|
3月前
|
数据采集 数据挖掘 Python
Python学习的自我理解和想法(22)
本文记录了作者学习Python第22天的内容——正则表达式,基于B站千锋教育课程。文章简要介绍了正则表达式的概念、特点及使用场景(如爬虫、数据清洗等),并通过示例解析了`re.search()`、`re.match()`、拆分、替换和匹配中文等基本语法。正则表达式是文本处理的重要工具,尽管入门较难,但功能强大。作者表示后续会深入讲解其应用,并强调学好正则对爬虫学习的帮助。因时间有限,内容为入门概述,不足之处敬请谅解。
|
3月前
|
设计模式 数据库 Python
Python学习的自我理解和想法(20)
这是我在B站千锋教育课程中学习Python第20天的总结,主要涉及面向对象编程的核心概念。内容包括:私有属性与私有方法的定义、语法及调用方式;多态的含义与实现,强调父类引用指向子类对象的特点;单例设计模式的定义、应用场景及实现步骤。通过学习,我掌握了如何在类中保护数据(私有化)、实现灵活的方法重写(多态)以及确保单一实例(单例模式)。由于开学时间有限,内容简明扼要,如有不足之处,欢迎指正!
|
3月前
|
索引 Python
Python学习的自我理解和想法(24)
本文记录了学习Python操作Excel的第24天内容,基于B站千锋教育课程。主要介绍openpyxl插件的使用,包括安装、读取与写入Excel文件、插入图表等操作。具体内容涵盖加载工作簿、获取单元格数据、创建和保存工作表,以及通过图表展示数据。因开学时间有限,文章简要概述了各步骤代码实现,适合初学者参考学习。如有不足之处,欢迎指正!

推荐镜像

更多
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问