python字典常用方法_Python 字典的常见操作

字典

字典的增删改查

字典的创建方式:

#创建字典类型

info ={'name':'李白','age':'25','sex':'男'}

msg={'user01':'Longzeluola','user02':'xiaozemaliya','user03':'cangjingkong'}

字典存储数据的时候,采取的是key:value的形式,是一组无序的存储。在需要的时候通过key就能够快速的获取value。

msg ={'user01':'Longzeluola','user02':'xiaozemaliya','user03':'cangjingkong'}print(msg['user01']) #Longzeluola

字典的值可以根据key值获取并且进行更改。

msg ={'user01':'Longzeluola','user02':'xiaozemaliya','user03':'cangjingkong'}

msg['user03'] = '泷泽萝拉'

结果:

{'user01': 'Longzeluola', 'user02': 'xiaozemaliya', 'user03': '泷泽萝拉'}

那么字典中如果需要新添加数据的话,也可以通过设置key-value的形式来进行添加。

msg ={'user01':'Longzeluola','user02':'xiaozemaliya','user03':'cangjingkong'}

msg['user04'] = 'MaLiCang'

print(msg)

结果:

{'user01': 'Longzeluola', 'user02': 'xiaozemaliya', 'user03': 'cangjingkong', 'user04': 'MaLiCang'}

而如果需要删除Python中的数据,可以使用如下的三种方法:

msg ={'user01':'Longzeluola','user02':'xiaozemaliya','user03':'cangjingkong'}#删除字典方法一#del msg['user01'] # {'user02': 'xiaozemaliya', 'user03': 'cangjingkong'}

#删除字典方法二#msg.pop('user01') # # {'user02': 'xiaozemaliya', 'user03': 'cangjingkong'}

#删除字典方法三

msg.popitem() #{'user01': 'Longzeluola', 'user02': 'xiaozemaliya'}

补充

在上面的一些操作中,我们基本实现了字典的增删改查,但是在查的过程中,有一点是需要注意的,如上面的查询方式dir[key]这种,如果key值并不存在于字典中,就会出现一个keyerror的错误,所以为了避免错误,我们通常情况下都不会使用这种方式来进行字典的key值查找,而是通过下面的方法。

#创建一个字典

msg={'user1101':'Xiaozemaliya','user1102':'Wutentlan','user1103':'Cangjingkong'}#通过key值获取value 使用get方式,存在key,那么就返回对应的value,如果不存在key,那么就返回None

print(msg.get('user1101')) #Xiaozemaliya

print(msg.get('user1108')) #None

判断一个key是否存在于一个字典中,可以使用in 运算符。

#创建一个字典

msg={'user1101':'Xiaozemaliya','user1102':'Wutentlan','user1103':'Cangjingkong'}#使用in检测字典中是否存在指定的key

print('user1101' in msg) #True

print('user1109' in msg) #False

上面是使用in运算符判断key是否存在,需要注意的是,在python2.x 的版本中,判断一个key是否存在于字典中,可以使用msg.has_key()的方式来进行判断。

多级字典嵌套及操作

在字典中,一直以key-value的形式进行数据存储,但是value的值除了是字符串以外,还可以是其他类型的值。同时,在字典中,也可以继续嵌套字典等数据。具体操作如下:

#创建一个多级的字典

av_catalog ={"欧美":{"www.youporn.com": ["很多免费的,世界最大的","质量一般"],"www.pornhub.com": ["很多免费的,也很大","质量比yourporn高点"],"letmedothistoyou.com": ["多是自拍,高质量图片很多","资源不多,更新慢"],"x-art.com":["质量很高,真的很高","全部收费,屌比请绕过"]

},"日韩":{"tokyo-hot":["质量怎样不清楚,个人已经不喜欢日韩范了","听说是收费的"]

},"大陆":{"1024":["全部免费,真好,好人一生平安","服务器在国外,慢"]

}

}#更改key值

av_catalog['大陆']['1024'][1] = '可以在国内做一个镜像'

print(av_catalog)

关于字典的补充说明

values 打印字典里面的所有的值

msg ={'stu1101':'XiaomingStudent','stu1102':'XiaohongStudent','stu2201':'XiaolvStudent','stu3101':'XiaoZhangStudent'}#values() 方法 输出字典中所有的值

print(msg.values())

结果为:

dict_values(['XiaomingStudent', 'XiaohongStudent', 'XiaolvStudent', 'XiaoZhangStudent'])

keys 打印所有的key

msg ={'stu1101':'XiaomingStudent','stu1102':'XiaohongStudent','stu2201':'XiaolvStudent','stu3101':'XiaoZhangStudent'}#keys 打印所有的key

print(msg.keys())

结果为:

dict_keys(['stu1101', 'stu1102', 'stu2201', 'stu3101'])

setdefault

设置新的key:value ,如果设置的key在字典中存在,那么就会把之前的key以及value返回,新设置的就会失效,如果没有就把设置的key:value添加到字典中去。

msg ={'stu1101':'XiaomingStudent','stu1102':'XiaohongStudent','stu2201':'XiaolvStudent','stu3101':'XiaoZhangStudent'}#使用setdefault方法设置key:value

msg.setdefault('stu3101','YanYanStudent') #此时3101key 已经存在,并不会新增的内容所影响

print(msg)

msg.setdefault('stu3102','LuLuStudent') #此时新增加的key 3102 添加成功

print(msg)

update 更新合并

使用update方法,可以将两个字典合并,并且如果字典中存在重复的内容,会产生覆盖,如果内容不重复,就会被合并到一个字典中。

msg ={'stu1101':'XiaomingStudent','stu1102':'XiaohongStudent','stu2201':'XiaolvStudent','stu3101':'XiaoZhangStudent'}

test_info={'T1101':'YanYanTeacher','T1102':'LiBai','stu2201':'JingjingStudent'}

msg.update(test_info)print(msg)

输出结果为:

{'stu1101': 'XiaomingStudent', 'stu1102': 'XiaohongStudent', 'stu2201': 'JingjingStudent', 'stu3101': 'XiaoZhangStudent', 'T1101': 'YanYanTeacher', 'T1102': 'LiBai'}

items 把一个列表转为一个元组

msg ={'stu1101':'XiaomingStudent','stu1102':'XiaohongStudent','stu2201':'XiaolvStudent','stu3101':'XiaoZhangStudent'}print(msg.items())

输出结果为:

dict_items([('stu1101', 'XiaomingStudent'), ('stu1102', 'XiaohongStudent'), ('stu2201', 'XiaolvStudent'), ('stu3101', 'XiaoZhangStudent')])

fromkeys 创建一个初始化列表

test_dir = dict.fromkeys(['stu01','stu02','stu03'],[1,{'name':'YanYanStudent'}])print(test_dir)

输出的结果为:

{'stu01': [1, {'name': 'YanYanStudent'}], 'stu02': [1, {'name': 'YanYanStudent'}], 'stu03': [1, {'name': 'YanYanStudent'}]}

此时通过dict.fromkeys方法,就创建出了一个新的字典,但是在这个字典中存在一个容易错的地方,如下:

test_dir = dict.fromkeys(['stu01','stu02','stu03'],[1,{'name':'YanYanStudent'}])#尝试着更改这个字典中的内容通过key值

test_dir['stu01'][1]['name'] = 'YanYanTeacher'

print(test_dir)

我们在代码中更改了其中的一个key的值,结果输出却为:

{'stu01': [1, {'name': 'YanYanTeacher'}], 'stu02': [1, {'name': 'YanYanTeacher'}], 'stu03': [1, {'name': 'YanYanTeacher'}]}

此时我们发现所有的key对应的value都被改变了。而这也是我们在使用这个fromkeys方法的时候需要注意的点。

字典的循环输出

将字典中key和value循环输出,有以下的两种方式:

#创建一个字典

msg ={'T1101':'YanYanTeacher','T1201':'LuLuTeacher','T1301':'JingJingTeacher'}#循环输出字典 -- 第一种方法

for i inmsg:print(i,msg[i])#循环输出字典 -- 第二种方法

for i,v inmsg.items():print(i,v)

上面两种循环输出列表的方式输出的结果是一样的,但是较为推荐使用第一种,因为第一种方式的执行效率要高于第二种,因为第一种是直接根据key值取出value,而第二种方式则是要多出一步将字典转换为列表的步骤,所以效率相对来讲比较低。

logo.gif

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/499035.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华为薪资等级结构表_华为21级程序员月薪曝光:月薪27w,什么概念!程序员中的战斗机...

最近,一名 HR 在网上发布了一个内容。该公司表示在招聘简历中找到了华为高管的简历,简历的级别为 21 级,月薪为 27 万,这确实令人惊讶。 华为的等级,估计很多人都不清楚。华为的等级从低到高,数字越高,等级越大,一般的应届生进入的是 13 级,正常的发展速度是 3 年升一…

eclipse maven项目 class类部署不到tomcat下_Springboot2.0学习3 项目部署到tomcat

一、说明本文接上一篇内容,在上一篇基础上完成部署到Tomcat的过程本文学习资源来自SpringBoot官网二、 代码修改1. 准备好上节完成的代码2. 把启动类从SpringBootServerletInitializer派生,用来支持WAR部署Application.java修改后如下:packag…

显卡服务器已停止响应,电脑提示显卡驱动已停止响应并且已成功恢复该怎么解决?...

“显卡驱动已停止响应,并且已成功恢复”这种问题就本人来说是因为显卡配置出现问题,比如我使用的3D图形软件MAYA2015对显卡要求比较高,我使用默认配置没有配置正确。所以说,显卡的等级是硬条件,实在不行建议买个外接独…

android int 首位值_Android应用视图的管理者Window

点击上方蓝色文字关注我哦Window在Android是一个窗口的概念,日常开发中我们和它接触的不多,我们更多接触的是View,但是View都是通过Window来呈现的,Window是View的直接管理者。而WindowManager承担者管理Window的责任。窗口类型Wi…

java正则匹配英文句号_Scala 正则表达式 0411

Scala 正则表达式Scala 通过 scala.util.matching 包中的 Regex 类来支持正则表达式。以下实例演示了使用正则表达式查找单词 Scala :import scala.util.matching.Regexobject Test {def main(args: Array[String]) {val pattern "Scala".rval str "Scala is …

撤销前进快捷键_电脑win7系统的快捷键大全

电脑在日常工作中经常需要使用到系统自带的快捷键,这样能够大大提高工作效率,比使用鼠标去点击查找方便省事多了,比如常用的复制(Ctrlc)粘贴(Ctrlv),今天就来给大家讲讲Windows系统的快捷键,可以说是快捷键大全啦。一、…

jedis依赖_SpringBoot整合Jedis实现redis缓存

我是一个java开发者,我的文章,没有华丽的言辞,没有666的版式,这些都是我自己工作中用到的解决方案,很多都是直接粘贴的源码,在这里与君分享。如果喜欢这里文章可以关注我,我回继续发的&#xff…

软件文档 服务器上,服务器上需要什么软件

服务器上需要什么软件 内容精选换一换华为云帮助中心,为用户提供产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题、视频帮助等技术文档,帮助您快速上手使用华为云服务。MindStudio所在的环境为开发环境,开发人员可以进…

服务器补丁 系统,操作系统补丁服务器

操作系统补丁服务器 内容精选换一换北京时间1月3日,Intel处理器芯片被曝出存在严重的Meltdown和Spectre安全漏洞,漏洞详情如下:漏洞名称:Intel处理器存在严重芯片级漏洞漏洞编号:CVE-2017-5753、CVE-2017-5715、CVE-20…

matlab 周立功can_隐藏在CAN协议底层的编码方式——到底是大端还是小端?

当我们想要讨论CAN协议底层发送到数据线上的二进制信号的编码方式时,最值得关注的两点是:字节编码(Endianness)和比特顺序(Bit Numbering)。先一句话揭晓答案:CAN协议的字节编码是大端编码&…

samba服务器新建文件权限,Ubuntu中安装samba服务器创建文件共享的方法及普通用户设置共享的问题解析...

Ubuntu中安装samba服务器创建文件共享的方法及普通用户设置共享的问题解析发布时间:2011-01-04 19:10:00 作者:佚名 我要评论本文是基于ubuntu桌面版进行操作说明的。前面的设置都是管理员进行的,这里说的管理员就是可以使用sudo命令&am…

flashpaper打印机没有被正确安装_没有正确保存与安装,可导致80%的轴承提早失效...

轴承损坏可谓司空见惯,可您是否知道,80%的轴承提早失效是因为没有正确地安装。轴承的正确安装,不仅可以增加轴承的使用寿命,降低成本,还可以大大提高生产效益。轴承安装与常规其他部件安装有很大区别,为了实…

rabbitmq实例_RabbitMQ不得不知道的点

RabbitMQ的优缺点优点这边的流量削峰功能主要应用在秒杀活动中,在秒杀活动中一般因为流量过大,导致应用挂掉,为了解决这个问题,在应用前端、库存系统前端加入消息队列,在订单系统中,服务器收到用户的请求后…

图片优化_网站里的图片应该如何优化

我们一直都在做网站关键词、内页关键词、标签等。但很多朋友都忽略了网站里的图片如何优化。近年来百度图片识别、360图片识别都在不断升级功能上已经很完善了,所以我们应该对网站图片进行优化,应该做seo的朋友们重视起来, 下面笔者跟大家分享…

rabbitmq 取消消息_mall整合RabbitMQ实现延迟消息

本文主要讲解mall整合RabbitMQ实现延迟消息的过程,以发送延迟消息取消超时订单为例。项目使用框架介绍RabbitMQRabbitMQ是一个被广泛使用的开源消息队列。它是轻量级且易于部署的,它能支持多种消息协议。RabbitMQ可以部署在分布式和联合配置中&#xff0…

vue 将行转换成对象_Vue简化版实现

Vue整体结构Vue: 把data中的成员注入到Vue实例,并且把data中的成员转换成getter, setterObserver: 劫持对象的所有属性, 如有变动可拿最新的值, 通知DepCompiler:解析每一个元素中的指令/插值表达式, 替换成相应的数据Dep: 发布者…

python 如何修改字典的key值_如何使用python技术完成数据集缺失值多种应用场景的滤除或填充?...

前言在数据处理的过程中,我们应该都有这样的体会,本质上数据处理与分析是相互协作,彼此成就的过程。比如,我们会用数据分析统计数据集中的缺失值、异常值,更直观的也会进阶到数据可视化的部分(到达该部分一般是成了文章…

python graphics 清空 图_【手把手教你】使用Python玩转金融时间序列模型

01引言上一篇推文【Python量化基础】时间序列的自相关性与平稳性着重介绍了时间序列的一些基础概念,包括自相关性、偏自相关性、白噪声和平稳性,以及Python的简单实现。本文在此基础上,以沪深300指数收益率数据为例,探讨如何使用P…

postman linux_Postman使用

postman简介官网https://learning.getpostman.com/用户在开发或者调试网络程序或者是网页B/S模式的程序的时候是需要一些方法来跟踪网页请求的,用户可以使用一些网络的监视工具比如著名的Firebug等网页调试工具。今天给大家介绍的这款网页调试工具不仅可以调试简单的…

java与MySQL做购物系统_java Swing mysql实现简单的购物系统项目源码附带指导视频教程...

大家好,今天给大家演示一下由Java swing实现的一款简单的购物程序,数据库采用的是mysql,该项目非常简单,实现了管理员对商品类型和商品的管理及用户注册登录后浏览商品、加入购物车、购买商品等功能,旨在学习Java 图形…