Python中字典的setdefault()方法教程


Posted in Python onFebruary 07, 2017

前言

在python基础知识中有说过,字典是可变的数据类型,其参数又是键对值。setdefault()方法和字典的get()方法在一些地方比较相像,都可以得到给定键对应的值。但setdefault()方法可以在字典中并不包含有给定键的情况下,为给定键设定相应的值。

Python 字典的 setdefault 方法原型如下:

dict.setdefault(key, default=None)

如果给定的 key 在字典中则返回该值,如果不在字典中,就将 key 插入到字典中,并将值设置为指定的 default 参数,default 的缺省值为 None。

使用 setdefault 方法相当于如下的操作:

if key in dict:
 reurn dict[key]
else:
 dict[key] = default
 return default

该方法与字典的 get 方法有些相似,但有些区别。dict.get dict.setdefault 方法在 key 存在于字典中时都能返回该值,在 key 不在字典中时,也都能返回缺省的值。两个方法的区别在于,当 key 不在字典中时 setdefault 方法会在字典插入缺省的键值并返回,而 get 方法只返回缺省值,不向字典中插入新的 key。

示例:

>>> dct = {}
>>> dct
{}
>>> dct["name"] = "huoty"
>>> dct
{'name': 'huoty'}
>>> dct.setdefault("name", "esenich")
'huoty'
>>> dct
{'name': 'huoty'}
>>> dct.setdefault("fname", "esenich")
'esenich'
>>> dct
{'name': 'huoty', 'fname': 'esenich'}
>>> dct.setdefault("addr")
>>> dct
{'name': 'huoty', 'fname': 'esenich', 'addr': None}
>>> dct.get("name", "xxx")
'huoty'
>>> dct
{'name': 'huoty', 'fname': 'esenich', 'addr': None}
>>> dct.get("age")
>>> dct
{'name': 'huoty', 'fname': 'esenich', 'addr': None}
>>> dct.get("age", 2)
2
>>> dct
{'name': 'huoty', 'fname': 'esenich', 'addr': None}

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

Python 相关文章推荐
Python 记录日志的灵活性和可配置性介绍
Feb 27 Python
python实现简易通讯录修改版
Mar 13 Python
详谈python中冒号与逗号的区别
Apr 18 Python
Python3内置模块之json编解码方法小结【推荐】
Dec 09 Python
在Django的View中使用asyncio的方法
Jul 12 Python
Django 项目通过加载不同env文件来区分不同环境
Feb 17 Python
Python线程协作threading.Condition实现过程解析
Mar 12 Python
Python Pandas数据分析工具用法实例
Nov 05 Python
python实现KNN近邻算法
Dec 30 Python
用python制作个音乐下载器
Jan 30 Python
Python异常类型以及处理方法汇总
Jun 05 Python
Python装饰器的练习题
Nov 23 Python
Python连接数据库学习之DB-API详解
Feb 07 #Python
使用Python中的tkinter模块作图的方法
Feb 07 #Python
Scrapy-redis爬虫分布式爬取的分析和实现
Feb 07 #Python
详解python中字典的循环遍历的两种方式
Feb 07 #Python
python3使用PyMysql连接mysql数据库实例
Feb 07 #Python
Python处理文本文件中控制字符的方法
Feb 07 #Python
关于numpy中np.nonzero()函数用法的详解
Feb 07 #Python
You might like
使用adodb lite解决问题
2006/12/31 PHP
五款PHP代码重构工具推荐
2014/10/14 PHP
YiiFramework入门知识点总结(图文教程)
2015/12/28 PHP
thinkphp3.x中变量的获取和过滤方法详解
2016/05/20 PHP
php文件上传后端处理小技巧
2016/05/22 PHP
JS解密入门 最终变量劫持
2008/06/25 Javascript
高亮显示web页表格行的javascript代码
2010/11/19 Javascript
JS获取当前日期和时间的简单实例
2013/11/19 Javascript
js sort 二维数组排序的用法小结
2014/01/24 Javascript
JS文件/图片从电脑里面拖拽到浏览器上传文件/图片
2017/03/08 Javascript
AngularJS2中一种button切换效果的实现方法(二)
2017/03/27 Javascript
微信小程序引用公共js里的方法的实例详解
2017/08/17 Javascript
jQuery实现的上传图片本地预览效果简单示例
2018/03/29 jQuery
JS+HTML实现的圆形可点击区域示例【3种方法】
2018/08/01 Javascript
基于Node.js搭建hexo博客过程详解
2019/06/25 Javascript
js实现查询商品案例
2020/07/22 Javascript
vue修改Element的el-table样式的4种方法
2020/09/17 Javascript
vue操作dom元素的3种方法示例
2020/09/20 Javascript
Vue表单提交点击事件只允许点击一次的实例
2020/10/23 Javascript
vue中可编辑树状表格的实现代码
2020/10/31 Javascript
[00:35]DOTA2上海特级锦标赛 Newbee战队宣传片
2016/03/03 DOTA
[00:36]我的中国心——Serenity vs Fnatic
2018/08/21 DOTA
python hough变换检测直线的实现方法
2019/07/12 Python
flask框架蓝图和子域名配置详解
2020/01/25 Python
浅析NumPy 切片和索引
2020/09/02 Python
jupyter notebook快速入门及使用详解
2020/11/13 Python
CSS3色彩模式有哪些?CSS3 HSL色彩模式的定义
2016/04/26 HTML / CSS
Janie and Jack美国官网:GAP旗下的高档童装品牌
2019/09/09 全球购物
Ajax主要包含了哪些技术
2014/06/12 面试题
活动策划求职信模板
2014/04/21 职场文书
励志演讲稿500字
2014/08/21 职场文书
简单通用的简历自我评价
2014/09/21 职场文书
杭州黄龙洞导游词
2015/02/10 职场文书
计算机专业自荐信
2015/03/05 职场文书
2015年质量月活动总结报告
2015/03/27 职场文书
深入理解MySQL中MVCC与BufferPool缓存机制
2022/05/25 MySQL