python中的字典
字典
字典是Python中唯一内建的映射类型。字典中没有特殊的顺序,但都是存储在一个特定的键(key)下面,键可以是数字,字符串,甚至是元组
字典中键的属性:不可修改 不可重复 注意:元组可以做为key列表不可以
字典中常用的方法:
一、查询
1 2 3 4 5 6 7 8 9 10 11 12 13 | stu = { 'name' : 'MLing' , 'age' : 18 , 'add' : '北京' } stu[ 'age' ] = 12 print (stu.get( 'age1' )) print (stu.get( 'name' )) print (stu[ 'age' ]) 运行结果: None MLing 12 |
*取值get更好一点,get不到的话,可以默认返回一个值None
二、修改
1 2 3 4 5 6 7 | stu = { 'name' : 'MLing' , 'age' : 18 , 'add' : '北京' } stu[ 'ces' ] = 12 print (stu) 运行结果:{ 'name' : 'MLing' , 'age' : 18 , 'add' : '北京' , 'ces' : 12 } |
三、新增
1.setdefault 只添加不修改
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | d1 = { 'name' : 'albert' , 'age' : 18 , } d1.setdefault( 'name' , 'Albert' ) d1.setdefault( 'gender' , 'male' ) print (d1) 运行结果: { 'name' : 'albert' , 'age' : 18 , 'gender' : 'male' } print (d1.setdefault( 'name' )) 运行结果: albert |
*如果入参中的key已经存在,不会修改原key的value,除非不存在的时候,才会新增
*使用方法
1)setdefault('X') 仅传key-X时,作为查询,返回key对应的value
2)setdefault('X','Y') 传key-X和value-Y不存在时,作为新增,再原字典中新增一对key和value,传的key-X和value-Y存在时,不新增(注意传参方式)
2.update 既添加也修改
1 2 3 4 5 6 7 8 9 10 | d1 = { 'name' : 'albert' , 'age' : 18 , } d1.update({ 'name' : 'Albert' , 'gender' : 'male' }) # 注意传参方式的不同 print (d1) # 输出 { 'name' : 'Albert' , 'age' : 18 , 'gender' : 'male' } |
四、删除
1)pop:通过key删除一个键值对,如果删除的key不存在时,会报错
1 2 3 4 5 6 7 | stu = { 'name' : 'MLing' , 'age' : 18 , 'add' : '北京' } stu.pop( 'age' ) print (stu) 运行结果:{ 'name' : 'MLing' , 'add' : '北京' } |
2)popitem方法类似于list.pop,后者弹出列表最后一个元素。但不同的是,popitem弹出随机的项,因为字典中没有最后的元素,该方法适合一个接一个旳移除并且处理项(不用首先获取键的列表,所以很高效)
1 2 3 4 5 6 7 8 9 10 11 | stu = { 'name' : 'MLing' , 'age' : 18 , 'add' : '北京' } print (stu) print (stu.popitem()) print (stu) 运行结果: { 'name' : 'MLing' , 'age' : 18 , 'add' : '北京' } ( 'add' , '北京' ) { 'name' : 'MLing' , 'age' : 18 } |
3)del:通过key删除一个键值对,如果删除的key不存在时,会报错
1 2 3 4 5 6 | stu = { 'name' : 'MLing' , 'age' : 18 , 'add' : '北京' } del stu[ 'age' ] print (stu) |
五、其他方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | stu2 = stu.copy() print (stu.copy()) # print(stu.items()) # stu.clear() # print(stu.keys()) # print(stu.values()) # # stu.update('qq','2121') # print(stu) x = { 'username' : 'admin' , 'machines' :[ 'foo' , 'bar' , 'baz' ]} y = x.copy() y[ 'username' ] = 'mlh' y[ 'machines' ].remove( 'bar' ) print (y) print (x) |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
2018-04-23 idea中看不到项目结构该怎么办
2018-04-23 IntelliJ IDEA2018.1、2017.3激活