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 相关文章推荐
MySQLdb ImportError: libmysqlclient.so.18解决方法
Aug 21 Python
python使用PIL模块实现给图片打水印的方法
May 22 Python
如何高效使用Python字典的方法详解
Aug 31 Python
python爬取m3u8连接的视频
Feb 28 Python
Python对象中__del__方法起作用的条件详解
Nov 01 Python
学习python分支结构
May 17 Python
pandas的连接函数concat()函数的具体使用方法
Jul 09 Python
python列表生成器迭代器实例解析
Dec 19 Python
Python发送手机动态验证码代码实例
Feb 28 Python
python 写函数在一定条件下需要调用自身时的写法说明
Jun 01 Python
python中sys模块是做什么用的
Aug 16 Python
Python unittest生成测试报告过程解析
Sep 08 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
PHP实现时间轴函数代码
2011/10/08 PHP
PHP使用GIFEncoder类处理gif图片实例
2014/07/01 PHP
PHP生成json和xml类型接口数据格式
2015/05/17 PHP
在PHP中输出JS语句以及乱码问题的解决方案
2019/02/13 PHP
Laravel自动生成UUID,从建表到使用详解
2019/10/24 PHP
5 cool javascript apps
2007/03/24 Javascript
javascript 动态修改样式和层叠样式表代码
2010/04/27 Javascript
JQuery 动态扩展对象之另类视角
2010/05/25 Javascript
javascript中tostring()和valueof()的用法及两者的区别
2015/11/16 Javascript
js弹出对话框方式小结
2015/11/17 Javascript
Javascript技术栈中的四种依赖注入小结
2016/02/27 Javascript
js中常用的Math方法总结
2017/01/12 Javascript
vue-dialog的弹出层组件
2020/05/25 Javascript
微信小程序 仿美团分类菜单 swiper分类菜单
2017/04/12 Javascript
javascript中UMD规范的代码推演
2018/08/29 Javascript
原生js检测页面加载完毕的实例
2018/09/11 Javascript
微信小程序之onLaunch与onload异步问题详解
2019/03/28 Javascript
JS实现马赛克图片效果完整示例
2019/04/13 Javascript
vue中node_modules中第三方模块的修改使用详解
2019/05/31 Javascript
微信小程序 this.triggerEvent()的具体使用
2019/12/10 Javascript
vue.js自定义组件实现v-model双向数据绑定的示例代码
2020/01/08 Javascript
javascript事件循环event loop的简单模型解释与应用分析
2020/03/14 Javascript
[01:09]2014DOTA2国际邀请赛 TI4西雅图DOTA2 中国美女coser加油助威
2014/07/20 DOTA
Python中几个比较常见的名词解释
2015/07/04 Python
python Flask实现restful api service
2017/12/04 Python
Python实现连接postgresql数据库的方法分析
2017/12/27 Python
pytorch cnn 识别手写的字实现自建图片数据
2018/05/20 Python
很酷的python表白工具 你喜欢我吗
2019/04/11 Python
Python实现自动签到脚本的示例代码
2020/08/19 Python
CSS3教程(4):网页边框和网页文字阴影
2009/04/02 HTML / CSS
我们是伦敦女孩:WalG
2018/01/08 全球购物
指针和引用有什么区别
2013/01/13 面试题
材料加工工程求职信
2014/02/19 职场文书
服装设计专业毕业生求职信
2014/04/09 职场文书
企业文化口号
2014/06/12 职场文书
golang内置函数len的小技巧
2021/07/25 Golang