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和IPython中使用Docker
Apr 28 Python
浅谈Python中chr、unichr、ord字符函数之间的对比
Jun 16 Python
Python的标准模块包json详解
Mar 13 Python
python实现稀疏矩阵示例代码
Jun 09 Python
Python随机生成均匀分布在三角形内或者任意多边形内的点
Dec 14 Python
Python数据分析之双色球中蓝红球分析统计示例
Feb 03 Python
Python3.5装饰器典型案例分析
Apr 30 Python
Python OpenCV中的resize()函数的使用
Jun 20 Python
Django自定义全局403、404、500错误页面的示例代码
Mar 08 Python
Python datetime 如何处理时区信息
Sep 02 Python
python爬虫构建代理ip池抓取数据库的示例代码
Sep 22 Python
python switch 实现多分支选择功能
Dec 21 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
在Mac OS上编译安装Nginx+PHP+MariaDB开发环境的教程
2016/02/23 PHP
一段实用的php验证码函数
2016/05/19 PHP
PHP递归统计系统中代码行数
2019/09/19 PHP
分享几种好用的PHP自定义加密函数(可逆/不可逆)
2020/09/15 PHP
PHP扩展安装方法步骤解析
2020/11/24 PHP
JQuery里面的几种选择器 查找满足条件的元素$("#控件ID")
2011/08/23 Javascript
input输入框的自动匹配(原生代码)
2013/03/19 Javascript
javascript实现日期格式转换
2014/12/16 Javascript
JavaScript数据结构和算法之二叉树详解
2015/02/11 Javascript
jQuery.datatables.js插件用法及api实例详解
2016/10/28 Javascript
vuex实现登录状态的存储,未登录状态不允许浏览的方法
2018/03/09 Javascript
基于vue1和vue2获取dom元素的方法
2018/03/17 Javascript
其实你可以少写点if else与switch(推荐)
2019/01/10 Javascript
JavaScript两种计时器的实例讲解
2019/01/31 Javascript
快速了解Node中的Stream流是什么
2019/02/13 Javascript
JavaScript模块管理的简单实现方式详解
2019/06/15 Javascript
Python中让MySQL查询结果返回字典类型的方法
2014/08/22 Python
Python实现的数据结构与算法之基本搜索详解
2015/04/22 Python
PyQt5每天必学之滑块控件QSlider
2018/04/20 Python
python实现简单图片物体标注工具
2019/03/18 Python
解决python 文本过滤和清理问题
2019/08/28 Python
基于Python中random.sample()的替代方案
2020/05/23 Python
Django web自定义通用权限控制实现方法
2020/11/24 Python
Django 用户认证Auth组件的使用
2020/11/30 Python
英国票务网站:Ticketmaster英国
2018/08/27 全球购物
俄罗斯在线水暖商店:Perfecto.ru
2019/10/25 全球购物
Viking Direct爱尔兰:办公用品和家具
2019/11/21 全球购物
英国高街奥特莱斯:Highstreet Outlet
2019/11/21 全球购物
自荐信模版
2013/10/24 职场文书
民警群众路线教育实践活动对照检查材料
2014/10/04 职场文书
出生公证书
2015/01/23 职场文书
学生不参加考试检讨书
2015/02/19 职场文书
学校食堂食品安全承诺书
2015/04/29 职场文书
实习感想范文
2015/08/10 职场文书
2016年乡镇综治宣传月活动总结
2016/03/16 职场文书
导游词之唐山景点
2019/12/18 职场文书