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爬取NUS-WIDE数据库图片
Oct 05 Python
python excel使用xlutils类库实现追加写功能的方法
May 02 Python
Python基于pyCUDA实现GPU加速并行计算功能入门教程
Jun 19 Python
python matlibplot绘制多条曲线图
Feb 19 Python
Tornado Web Server框架编写简易Python服务器
Jul 28 Python
python异步编程 使用yield from过程解析
Sep 25 Python
对python中assert、isinstance的用法详解
Nov 27 Python
Python continue语句实例用法
Feb 06 Python
简单了解python列表和元组的区别
May 14 Python
Keras load_model 导入错误的解决方式
Jun 09 Python
Python collections.defaultdict模块用法详解
Jun 18 Python
python编写扎金花小程序的实例代码
Feb 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
解析PHP将对象转换成数组的方法(兼容多维数组类型)
2013/06/21 PHP
php 无限分类 树形数据格式化代码
2016/10/11 PHP
Linux平台php命令行程序处理管道数据的方法
2016/11/10 PHP
PHP中的empty、isset、isnull的区别与使用实例
2019/03/22 PHP
javascrip客户端验证文件大小及文件类型并重置上传
2011/01/12 Javascript
jQuery+JSON+jPlayer实现QQ空间音乐查询功能示例
2013/06/17 Javascript
jquery获取元素值的方法(常见的表单元素)
2013/11/15 Javascript
jquery图片切换插件
2015/03/16 Javascript
js+canvas绘制五角星的方法
2016/01/28 Javascript
老生常谈onBlur事件与onfocus事件(js)
2016/07/09 Javascript
关于jquery中动态增加select,事件无效的快速解决方法
2016/08/29 Javascript
深入理解ES6 Promise 扩展always方法
2017/09/26 Javascript
JS实现中文汉字按拼音排序的方法
2017/10/09 Javascript
vue自定义过滤器创建和使用方法详解
2017/11/06 Javascript
在vue项目中使用sass语法问题
2019/07/18 Javascript
js制作提示框插件
2020/12/24 Javascript
[58:00]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Elephant BO3 第二场 2月7日
2021/03/11 DOTA
easy_install python包安装管理工具介绍
2013/02/10 Python
python实现比较两段文本不同之处的方法
2015/05/30 Python
利用python获取某年中每个月的第一天和最后一天
2016/12/15 Python
python解决汉字编码问题:Unicode Decode Error
2017/01/19 Python
Django框架下静态模板的继承操作示例
2019/11/08 Python
使用pyqt 实现重复打开多个相同界面
2019/12/13 Python
python文件操作seek()偏移量,读取指正到指定位置操作
2020/07/05 Python
教你如何一步一步用Canvas写一个贪吃蛇
2018/10/22 HTML / CSS
HTML5实现视频弹幕功能
2019/08/09 HTML / CSS
h5页面唤起app如果没安装就跳转下载(iOS和Android)
2020/06/03 HTML / CSS
Styleonme中文网:韩国高档人气品牌
2017/06/21 全球购物
lululemon美国官网:瑜伽服+跑步装备
2018/11/16 全球购物
机电一体化应届生求职信范文
2014/01/24 职场文书
数控技术专业毕业自荐书范文
2014/02/05 职场文书
应届毕业生通用的自荐书范文
2014/02/07 职场文书
元旦晚会活动总结
2014/07/09 职场文书
网上祭先烈心得体会
2014/09/01 职场文书
旗帜观后感
2015/06/08 职场文书
vue递归实现树形组件
2022/07/15 Vue.js