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爬取网站数据保存使用的方法
Nov 20 Python
python遍历类中所有成员的方法
Mar 18 Python
Python实现注册登录系统
Aug 08 Python
python爬虫之urllib3的使用示例
Jul 09 Python
Python flask框架post接口调用示例
Jul 03 Python
python如何实现数据的线性拟合
Jul 19 Python
Django 项目重命名的实现步骤解析
Aug 14 Python
Java ExcutorService优雅关闭方式解析
May 30 Python
Python 实现微信自动回复的方法
Sep 11 Python
如何将Pycharm中调整字体大小的方式设置为"ctrl+鼠标滚轮上下滑"
Nov 17 Python
python 实现全球IP归属地查询工具
Dec 18 Python
Python实现天气查询软件
Jun 07 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/06/04 PHP
php输出xml格式字符串(用的这个)
2012/07/12 PHP
php实现的Captcha验证码类实例
2014/09/22 PHP
php中使用session防止用户非法登录后台的方法
2015/01/27 PHP
thinkPHP框架实现多表查询的方法
2018/06/14 PHP
javascript中注册和移除事件的4种方式
2013/03/20 Javascript
Javascript中克隆一个数组的实现代码
2013/12/06 Javascript
用js的document.write输出的广告无阻塞加载的方法
2014/06/05 Javascript
JS+CSS实现实用的单击输入框弹出选择框的方法
2015/02/28 Javascript
JavaScript判断是否为数字的4种方法及效率比较
2015/04/01 Javascript
javascript的变量、传值、传址、参数之间关系
2015/07/26 Javascript
使用Javascript写的2048小游戏
2015/11/25 Javascript
数组Array的排序sort方法
2017/02/17 Javascript
js/jq仿window文件夹移动/剪切/复制等操作代码
2017/03/08 Javascript
在vue中获取dom元素内容的方法
2017/07/10 Javascript
JavaScript面向对象精要(下部)
2017/09/12 Javascript
浅谈Angular 的变化检测的方法
2018/03/01 Javascript
Javascript读写cookie的实例源码
2019/03/16 Javascript
Vue源码解析之数据响应系统的使用
2019/04/24 Javascript
js实现内置计时器
2019/12/16 Javascript
js实现右键弹出自定义菜单
2020/09/08 Javascript
Python3获取拉勾网招聘信息的方法实例
2019/04/03 Python
利用ImageAI库只需几行python代码实现目标检测
2019/08/09 Python
详解django中Template语言
2020/02/22 Python
html5 拖拽上传图片实例演示
2013/04/01 HTML / CSS
英国知名的护肤彩妆与时尚配饰大型综合零售电商:Unineed
2016/11/21 全球购物
Marmot土拨鼠官网:美国专业户外运动品牌
2018/01/11 全球购物
优秀毕业自我鉴定
2014/02/15 职场文书
干部下基层实施方案
2014/03/14 职场文书
王老吉广告词
2014/03/20 职场文书
企业负责人任命书
2014/06/05 职场文书
亲子运动会的活动方案
2014/08/17 职场文书
幼儿园大班教师个人总结
2015/02/05 职场文书
学雷锋日活动总结
2015/02/06 职场文书
社区环境卫生倡议书
2015/04/29 职场文书
JS + HTML 罗盘式时钟的实现
2021/05/21 Javascript