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 相关文章推荐
对numpy中shape的深入理解
Jun 15 Python
pygame实现简易飞机大战
Sep 11 Python
python添加模块搜索路径和包的导入方法
Jan 19 Python
基于python生成器封装的协程类
Mar 20 Python
python实现对象列表根据某个属性排序的方法详解
Jun 11 Python
Python整数与Numpy数据溢出问题解决
Sep 11 Python
python opencv将表格图片按照表格框线分割和识别
Oct 30 Python
jupyter lab的目录调整及设置默认浏览器为chrome的方法
Apr 10 Python
使用OpenCV去除面积较小的连通域
Jul 05 Python
Python JSON常用编解码方法代码实例
Sep 05 Python
Python Selenium XPath根据文本内容查找元素的方法
Dec 07 Python
Python创建SQL数据库流程逐步讲解
Sep 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强制更新图片缓存的方法
2015/02/11 PHP
PHP扩展开发入门教程
2015/02/26 PHP
使用新浪微博API的OAuth认证发布微博实例
2015/03/27 PHP
图文介绍PHP添加Redis模块及连接
2015/07/28 PHP
浅析php如何实现爬取数据原理
2018/09/27 PHP
php原生数据库分页的代码实例
2019/02/18 PHP
laravel通用化的CURD的实现
2019/12/13 PHP
php redis setnx分布式锁简单原理解析
2020/10/23 PHP
Web版彷 Visual Studio 2003 颜色选择器
2007/01/09 Javascript
20款超赞的jQuery插件 Web开发人员必备
2011/02/26 Javascript
jQuery去掉字符串起始和结尾的空格(多种方法实现)
2013/04/01 Javascript
jquery滚动到顶部底部代码
2015/04/20 Javascript
javascript中html字符串转化为jquery dom对象的方法
2015/08/27 Javascript
javaScript中的空值和假值
2017/12/18 Javascript
详解vue在项目中使用百度地图
2019/03/26 Javascript
layui问题之模拟table表格中的选中按钮选中事件的方法
2019/09/20 Javascript
python生成随机mac地址的方法
2015/03/16 Python
python插入排序算法实例分析
2015/07/03 Python
Python实现图像去噪方式(中值去噪和均值去噪)
2019/12/18 Python
记一次Django响应超慢的解决过程
2020/09/17 Python
美国珠宝精品店:Opulent Jewelers
2019/08/20 全球购物
eharmony澳大利亚:网上约会服务
2020/02/29 全球购物
美国家居装饰店:Z Gallerie
2020/12/28 全球购物
会展中心部门工作职责
2013/11/27 职场文书
大学生实习思想汇报
2014/01/12 职场文书
元旦红领巾广播稿
2014/02/19 职场文书
移风易俗倡议书
2014/04/15 职场文书
学习雷锋活动总结
2014/04/29 职场文书
个人自荐材料
2014/05/23 职场文书
生物科学专业自荐书
2014/06/20 职场文书
2014年教研室工作总结
2014/12/06 职场文书
上课迟到检讨书
2015/05/06 职场文书
机关工会工作总结2015
2015/05/26 职场文书
2016年小学优秀班主任事迹材料
2016/02/29 职场文书
2016年中学端午节主题活动总结
2016/04/01 职场文书
Pytorch 中net.train 和 net.eval的使用说明
2021/05/22 Python