python字典的setdefault的巧妙用法


Posted in Python onAugust 07, 2019

现在有一个员工字典,类似这样的结构

staff_dic = {"name":"灭霸", "age": 10000, "hobbies":["打响指", "扣脚"]}

假设我们要给员工添加爱好信息,但是我们不知道hobby这个键存不存在,我们通常的做法是分为三步:

1)从字典中取到hobbies对应的值,如果没有hobbies这个键,则设置这个值为空列表

2)对这个值进行更新操作

3)将更新后的值赋值回字典

hobbies= staff_dic.get("hobby",[])
hobbies.append("毁灭宇宙")
staff_dic["hobbies"] = hobbies

以上方法进行了两次查询操作

如果使用setdefault,只需要查询一次

staff_dic.setdefault("hobbies", []).append("毁灭宇宙")

注意:setdefault()有返回值,返回值为取到的值(键存在)或默认值(键不存在)

Python 相关文章推荐
跟老齐学Python之有容乃大的list(4)
Sep 28 Python
跟老齐学Python之类的细节
Oct 13 Python
Python 创建子进程模块subprocess详解
Apr 08 Python
Python 描述符(Descriptor)入门
Nov 20 Python
使用python生成目录树
Mar 29 Python
python3实现爬取淘宝美食代码分享
Sep 23 Python
Python3实现的判断环形链表算法示例
Mar 07 Python
python 根据网易云歌曲的ID 直接下载歌曲的实例
Aug 24 Python
python输出pdf文档的实例
Feb 13 Python
python使用paramiko实现ssh的功能详解
Mar 06 Python
pandas.DataFrame.drop_duplicates 用法介绍
Jul 06 Python
matplotlib画混淆矩阵与正确率曲线的实例代码
Jun 01 Python
解决Django中调用keras的模型出现的问题
Aug 07 #Python
python 字典 setdefault()和get()方法比较详解
Aug 07 #Python
与Django结合利用模型对上传图片预测的实例详解
Aug 07 #Python
如何用Python来搭建一个简单的推荐系统
Aug 07 #Python
PIL对上传到Django的图片进行处理并保存的实例
Aug 07 #Python
django 实现将本地图片存入数据库,并能显示在web上的示例
Aug 07 #Python
Python学习笔记之Django创建第一个数据库模型的方法
Aug 07 #Python
You might like
php随机取mysql记录方法小结
2014/12/27 PHP
阿里云Win2016安装Apache和PHP环境图文教程
2018/03/11 PHP
Javascript 判断函数类型完美解决方案
2009/09/02 Javascript
JavaScript 学习初步 入门教程
2010/03/25 Javascript
对javascript的一点点认识总结《javascript高级程序设计》读书笔记
2011/11/30 Javascript
js的回调函数详解
2015/01/05 Javascript
jstree的简单实例
2016/12/01 Javascript
JavaScript获取键盘按键的键码(参照表)
2017/01/10 Javascript
微信小程序 利用css实现遮罩效果实例详解
2017/01/21 Javascript
jQuery按需加载轮播图(web前端性能优化)
2017/02/17 Javascript
Vue.js实战之使用Vuex + axios发送请求详解
2017/04/04 Javascript
简单实现JavaScript弹幕效果
2020/08/27 Javascript
极简主义法编写JavaScript类
2017/11/02 Javascript
浅谈webpack下的AOP式无侵入注入
2017/11/12 Javascript
浅谈Emergence.js 检测元素可见性的 js 插件
2017/11/18 Javascript
es6中let和const的使用方法详解
2020/02/24 Javascript
JavaScript设计模式--简单工厂模式实例分析【XHR工厂案例】
2020/05/23 Javascript
快速了解Vue父子组件传值以及父调子方法、子调父方法
2020/07/15 Javascript
[03:58]2014DOTA2国际邀请赛 龙宝赛后解密DK获胜之道
2014/07/14 DOTA
[01:57]2018DOTA2亚洲邀请赛赛前采访-iG
2018/04/03 DOTA
Python常见文件操作的函数示例代码
2011/11/15 Python
Python对两个有序列表进行合并和排序的例子
2014/06/13 Python
利用python批量检查网站的可用性
2016/09/09 Python
R语言 vs Python对比:数据分析哪家强?
2017/11/17 Python
使用Anaconda3建立虚拟独立的python2.7环境方法
2018/06/11 Python
Pycharm取消py脚本中SQL识别的方法
2018/11/29 Python
解决springboot yml配置 logging.level 报错问题
2020/02/21 Python
Python爬虫抓取指定网页图片代码实例
2020/07/24 Python
Python如何实现远程方法调用
2020/08/07 Python
CSS3图片旋转特效(360/60/-360度)
2013/10/10 HTML / CSS
css3弹性盒子flex实现三栏布局的实现
2020/11/12 HTML / CSS
中国汽车租赁行业头部企业:一嗨租车
2019/05/16 全球购物
2015年百日安全活动总结
2015/03/26 职场文书
大学生敬老院活动总结
2015/05/07 职场文书
出纳试用期工作总结2015
2015/05/28 职场文书
vue递归实现树形组件
2022/07/15 Vue.js