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 相关文章推荐
使用BeautifulSoup爬虫程序获取百度搜索结果的标题和url示例
Jan 19 Python
python生成指定长度的随机数密码
Jan 23 Python
在Python中操作列表之List.append()方法的使用
May 20 Python
python使用matplotlib绘图时图例显示问题的解决
Apr 27 Python
Python基础教程之利用期物处理并发
Mar 29 Python
运行django项目指定IP和端口的方法
May 14 Python
Python找出微信上删除你好友的人脚本写法
Nov 01 Python
django框架模板语言使用方法详解
Jul 18 Python
python程序 线程队列queue使用方法解析
Sep 23 Python
Windows平台Python编程必会模块之pywin32介绍
Oct 01 Python
Python jieba库用法及实例解析
Nov 04 Python
使用Python开发贪吃蛇游戏 SnakeGame
Apr 30 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
VOLVO车载收音机
2021/03/02 无线电
关于BIG5-HKSCS的解决方法
2007/03/20 PHP
php getcwd与dirname(__FILE__)区别详解
2016/09/24 PHP
PHP+JS实现的实时搜索提示功能
2018/03/13 PHP
js 动态为textbox添加下拉框数据源的方法
2014/04/24 Javascript
JQuery鼠标移到小图显示大图效果的方法
2015/06/10 Javascript
JavaScript继承学习笔记【新手必看】
2016/05/10 Javascript
关于meta viewport中target-densitydpi属性详解(推荐)
2017/08/18 Javascript
Vue隐藏显示、只读实例代码
2018/07/18 Javascript
从零开始封装自己的自定义Vue组件
2018/10/09 Javascript
js实现整体缩放页面适配移动端
2020/03/31 Javascript
vue flex 布局实现div均分自动换行的示例代码
2020/08/05 Javascript
Vue使用screenfull实现全屏效果
2020/09/17 Javascript
JS实现手风琴特效
2020/11/08 Javascript
Vue实现摇一摇功能(兼容ios13.3以上)
2021/01/26 Vue.js
Python控制多进程与多线程并发数总结
2016/10/26 Python
Python自动发邮件脚本
2017/03/31 Python
Python使用win32com实现的模拟浏览器功能示例
2017/07/13 Python
python绘制热力图heatmap
2020/03/23 Python
Python HTML解析器BeautifulSoup用法实例详解【爬虫解析器】
2019/04/05 Python
python粘包问题及socket套接字编程详解
2019/06/29 Python
python绘制已知点的坐标的直线实例
2019/07/04 Python
python代码xml转txt实例
2020/03/10 Python
jupyter note 实现将数据保存为word
2020/04/14 Python
Python 可视化神器Plotly详解
2020/12/26 Python
Python实现简单的2048小游戏
2021/03/01 Python
某公司面试题
2012/03/05 面试题
幼儿园大班新学期寄语
2014/01/18 职场文书
小加工厂管理制度
2014/01/21 职场文书
2014道德模范事迹材料
2014/02/16 职场文书
高中生毕业评语
2014/12/30 职场文书
工作感想范文
2015/08/07 职场文书
2016年国培心得体会及反思
2016/01/13 职场文书
辞职信怎么写?你都知道吗?
2019/06/24 职场文书
如何用Laravel包含你自己的帮助函数
2021/05/27 PHP
CSS中实现动画效果-附案例
2022/02/28 HTML / CSS