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 相关文章推荐
wxpython 学习笔记 第一天
Feb 09 Python
python设计模式大全
Jun 27 Python
使用pandas对矢量化数据进行替换处理的方法
Apr 11 Python
python贪婪匹配以及多行匹配的实例讲解
Apr 19 Python
Python设计模式之命令模式原理与用法实例分析
Jan 11 Python
Python编写通讯录通过数据库存储实现模糊查询功能
Jul 18 Python
Python pandas用法最全整理
Aug 04 Python
解决pycharm上的jupyter notebook端口被占用问题
Dec 17 Python
python3从网络摄像机解析mjpeg http流的示例
Nov 13 Python
Python+unittest+DDT实现数据驱动测试
Nov 30 Python
基于Django快速集成Echarts代码示例
Dec 01 Python
Python绘制数码晶体管日期
Feb 19 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
浅析ThinkPHP中的pathinfo模式和URL重写
2014/01/06 PHP
ThinkPHP处理Ajax返回的方法
2014/11/22 PHP
文本链接逐个出现的js脚本
2007/12/12 Javascript
Javascript 更新 JavaScript 数组的 uniq 方法
2008/01/23 Javascript
向大师们学习Javascript(视频与PPT)
2009/12/27 Javascript
AJAX 网页保留浏览器前进后退等功能
2011/02/12 Javascript
jquery ajax请求实例深入解析
2012/11/26 Javascript
JQuery加载图片自适应固定大小的DIV
2013/09/12 Javascript
如何书写高质量jQuery代码(使用jquery性能问题)
2014/06/30 Javascript
javascript实现dom元素可拖动
2016/03/21 Javascript
jQuery 弹出层插件(推荐)
2016/05/24 Javascript
jQuery实现的纵向下拉菜单实例详解【附demo源码下载】
2016/07/09 Javascript
简洁实用的BootStrap jQuery手风琴插件
2016/08/31 Javascript
jQuery删除节点用法示例(remove方法)
2016/09/08 Javascript
浅析Node.js:DNS模块的使用
2016/11/23 Javascript
微信小程序scroll-view仿拼多多横向滑动滚动条
2020/04/21 Javascript
一步快速解决微信小程序中textarea层级太高遮挡其他组件
2019/03/04 Javascript
js作用域和作用域链及预解析
2019/04/11 Javascript
Layui 带多选框表格监听事件以及按钮自动点击写法实例
2019/09/02 Javascript
[47:46]完美世界DOTA2联赛 Magma vs GXR 第三场 11.07
2020/11/10 DOTA
python的id()函数解密过程
2012/12/25 Python
简单的通用表达式求10乘阶示例
2014/03/03 Python
Python3实现简单可学习的手写体识别(实例讲解)
2017/10/21 Python
python logging模块的使用详解
2020/10/23 Python
地图可视化神器kepler.gl python接口的使用方法
2020/12/22 Python
Python3.9.0 a1安装pygame出错解决全过程(小结)
2021/02/02 Python
英国奢侈品牌时尚购物平台:Farfetch(支持中文)
2020/02/18 全球购物
Linden Leaves官网:新西兰纯净护肤品
2020/12/20 全球购物
高中军训感言1000字
2014/03/01 职场文书
请假条格式范文
2014/04/10 职场文书
推荐信怎么写
2014/05/09 职场文书
2015年万圣节活动总结
2015/03/24 职场文书
高一化学教学反思
2016/02/22 职场文书
Django 如何实现文件上传下载
2021/04/08 Python
vue基于Teleport实现Modal组件
2021/05/31 Vue.js
《LOL》“克隆大作战”久违归来 幻灵战队皮肤上线
2022/04/03 其他游戏