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


相关文章
|
15天前
|
Python
python函数的参数学习
学习Python函数参数涉及五个方面:1) 位置参数按顺序传递,如`func(1, 2, 3)`;2) 关键字参数通过名称传值,如`func(a=1, b=2, c=3)`;3) 默认参数设定默认值,如`func(a, b, c=0)`;4) 可变参数用*和**接收任意数量的位置和关键字参数,如`func(1, 2, 3, a=4, b=5, c=6)`;5) 参数组合结合不同类型的参数,如`func(1, 2, 3, a=4, b=5, c=6)`。
16 1
|
11天前
|
Python
python学习3-选择结构、bool值、pass语句
python学习3-选择结构、bool值、pass语句
|
1天前
|
JSON 数据可视化 定位技术
python_将包含汉字的字典数据写入json(将datav的全省数据中的贵州区域数据取出来)
python_将包含汉字的字典数据写入json(将datav的全省数据中的贵州区域数据取出来)
5 0
|
2天前
|
运维 Shell Python
Shell和Python学习教程总结
Shell和Python学习教程总结
|
2天前
|
Python
Python从入门到精通:深入学习面向对象编程——2.1.2继承、封装和多态的概念
Python从入门到精通:深入学习面向对象编程——2.1.2继承、封装和多态的概念
|
2天前
|
开发框架 前端开发 数据库
Python从入门到精通:3.3.2 深入学习Python库和框架:Web开发框架的探索与实践
Python从入门到精通:3.3.2 深入学习Python库和框架:Web开发框架的探索与实践
|
2天前
|
数据采集 数据可视化 数据处理
Python从入门到精通的文章3.3.1 深入学习Python库和框架:数据处理与可视化的利器
Python从入门到精通的文章3.3.1 深入学习Python库和框架:数据处理与可视化的利器
|
2天前
|
存储 网络协议 关系型数据库
Python从入门到精通:2.3.2数据库操作与网络编程——学习socket编程,实现简单的TCP/UDP通信
Python从入门到精通:2.3.2数据库操作与网络编程——学习socket编程,实现简单的TCP/UDP通信
|
3天前
|
JSON 数据格式 索引
python 又一个点运算符操作的字典库:Munch
python 又一个点运算符操作的字典库:Munch
21 0
|
9天前
|
机器学习/深度学习 算法 Python
使用Python实现集成学习算法:Bagging与Boosting
使用Python实现集成学习算法:Bagging与Boosting
19 0