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读取图片EXIF信息类库介绍和使用实例
Jul 10 Python
使用Python抓取模板之家的CSS模板
Mar 16 Python
Python使用sorted排序的方法小结
Jul 28 Python
Python实现Pig Latin小游戏实例代码
Feb 02 Python
TensorFlow实现非线性支持向量机的实现方法
Apr 28 Python
解决python 找不到module的问题
Feb 12 Python
Django使用list对单个或者多个字段求values值实例
Mar 31 Python
在TensorFlow中实现矩阵维度扩展
May 22 Python
python 使用建议与技巧分享(四)
Aug 18 Python
QT5 Designer 打不开的问题及解决方法
Aug 20 Python
详解pandas中利用DataFrame对象的.loc[]、.iloc[]方法抽取数据
Dec 13 Python
Django用内置方法实现简单搜索功能的方法
Dec 18 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版(2)
2006/10/09 PHP
PHP+MySQL投票系统的设计和实现分享
2012/09/23 PHP
FastCGI 进程意外退出造成500错误
2015/07/26 PHP
功能强大的PHP图片处理类(水印、透明度、旋转)
2015/10/21 PHP
深入浅出讲解:php的socket通信原理
2016/12/03 PHP
php+ajax简单实现全选删除的方法
2016/12/06 PHP
Laravel 5.5 实现禁用用户注册示例
2019/10/24 PHP
this和执行上下文实现代码
2010/07/01 Javascript
关于js datetime的那点事
2011/11/15 Javascript
JavaScript字符串插入、删除、替换函数使用示例
2013/07/25 Javascript
JavaScript实现的日期控件具体代码
2013/11/18 Javascript
node.js中的http.response.writeHead方法使用说明
2014/12/14 Javascript
jquery实现的Banner广告收缩效果代码
2015/09/02 Javascript
详解NodeJs支付宝移动支付签名及验签
2017/01/06 NodeJs
JS百度地图搜索悬浮窗功能
2017/01/12 Javascript
ReactJs实现树形结构的数据显示的组件的示例
2017/08/18 Javascript
vue实现导航栏效果(选中状态刷新不消失)
2017/12/13 Javascript
JS实现对json对象排序并删除id相同项功能示例
2018/04/18 Javascript
js实现一个简易计算器
2020/03/30 Javascript
vue实现pdf文档在线预览功能
2019/11/26 Javascript
解决vue-cli输入命令vue ui没效果的问题
2020/11/17 Javascript
[01:08:29]DOTA2-DPC中国联赛定级赛 RNG vs Aster BO3第一场 1月9日
2021/03/11 DOTA
Python中使用md5sum检查目录中相同文件代码分享
2015/02/02 Python
编写自定义的Django模板加载器的简单示例
2015/07/21 Python
Python利用正则表达式匹配并截取指定子串及去重的方法
2015/07/30 Python
python逆向入门教程
2018/01/15 Python
python实现键盘输入的实操方法
2019/07/16 Python
Python tkinter实现图片标注功能(完整代码)
2019/12/08 Python
基于python连接oracle导并出数据文件
2020/04/28 Python
医药营销个人求职信范文
2014/02/07 职场文书
个人总结与自我评价2015
2015/03/11 职场文书
python 自动刷新网页的两种方法
2021/04/20 Python
解决Navicat for Mysql连接报错1251的问题(连接失败)
2021/05/27 MySQL
Mysql中存储引擎的区别及比较
2021/06/04 MySQL
再也不用花钱买漫画!Python爬取某漫画的脚本及源码
2021/06/09 Python
Javascript webpack动态import
2022/04/19 Javascript