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读写ini配置文件方法实例分析
Jun 30 Python
解决Python pandas df 写入excel 出现的问题
Jul 04 Python
python如何创建TCP服务端和客户端
Aug 26 Python
Python如何实现转换URL详解
Jul 02 Python
Flask框架重定向,错误显示,Responses响应及Sessions会话操作示例
Aug 01 Python
python函数的作用域及关键字详解
Aug 20 Python
Python生成验证码、计算具体日期是一年中的第几天实例代码详解
Oct 16 Python
Python tkinter实现图片标注功能(完整代码)
Dec 08 Python
如何基于python测量代码运行时间
Dec 25 Python
Django获取model中的字段名和字段的verbose_name方式
May 19 Python
运行Python编写的程序方法实例
Oct 21 Python
python urllib和urllib3知识点总结
Feb 08 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数据库操作方法(MYSQL版)
2011/06/08 PHP
探讨Smarty中如何获取数组的长度以及smarty调用php函数的详解
2013/06/20 PHP
Jquery AJAX 用于计算点击率(统计)
2010/06/30 Javascript
js+css 实现遮罩居中弹出层(随浏览器窗口滚动条滚动)
2013/12/11 Javascript
动态加载JavaScript文件的两种方法
2016/04/22 Javascript
jquery使用EasyUI Tree异步加载JSON数据(生成树)
2017/02/11 Javascript
JS库 Highlightjs 添加代码行号的实现代码
2017/09/13 Javascript
关于react-router/react-router-dom v4 history不能访问问题的解决
2018/01/08 Javascript
vue源码解析之事件机制原理
2018/04/21 Javascript
json字符串传到前台input的方法
2018/08/06 Javascript
jquery获取select选中值的文本,并赋值给另一个输入框的方法
2018/08/21 jQuery
js实现秒表计时器
2019/12/16 Javascript
React Ant Design树形表格的复杂增删改操作
2020/11/02 Javascript
[01:18]PWL开团时刻DAY4——圣剑与抢盾
2020/11/03 DOTA
进一步探究Python的装饰器的运用
2015/05/05 Python
Python使用回溯法子集树模板解决爬楼梯问题示例
2017/09/08 Python
python中requests库session对象的妙用详解
2017/10/30 Python
Python用csv写入文件_消除空余行的方法
2018/07/06 Python
Python3.5 Pandas模块之Series用法实例分析
2019/04/23 Python
python opencv对图像进行旋转且不裁剪图片的实现方法
2019/07/09 Python
使用APScheduler3.0.1 实现定时任务的方法
2019/07/22 Python
Tornado实现多进程/多线程的HTTP服务详解
2019/07/25 Python
python3实现微型的web服务器
2019/09/03 Python
torch 中各种图像格式转换的实现方法
2019/12/26 Python
Python测试线程应用程序过程解析
2019/12/31 Python
Python破解BiliBili滑块验证码的思路详解(完美避开人机识别)
2020/02/17 Python
python实现word文档批量转成自定义格式的excel文档的思路及实例代码
2020/02/21 Python
python计算Content-MD5并获取文件的Content-MD5值方式
2020/04/03 Python
10个python爬虫入门基础代码实例 + 1个简单的python爬虫完整实例
2020/12/16 Python
selenium设置浏览器为headless无头模式(Chrome和Firefox)
2021/01/08 Python
Python中lru_cache的使用和实现详解
2021/01/25 Python
canvas画布实现手写签名效果的示例代码
2019/04/23 HTML / CSS
同步和异步有何异同,在什么情况下分别使用他们?
2012/12/28 面试题
口腔工艺技术专业毕业生自荐信
2013/09/27 职场文书
考生诚信考试承诺书
2015/04/29 职场文书
送给教师们,到底该如何写好教学反思?
2019/07/02 职场文书