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中wx将图标显示在右下角的脚本代码
Mar 08 Python
python使用7z解压apk包的方法
Apr 18 Python
Python pass详细介绍及实例代码
Nov 24 Python
Python实现动态加载模块、类、函数的方法分析
Jul 18 Python
对python append 与浅拷贝的实例讲解
May 04 Python
python实现简单日期工具类
Apr 24 Python
浅析python redis的连接及相关操作
Nov 07 Python
基于Tensorflow高阶读写教程
Feb 10 Python
Python3 中sorted() 函数的用法
Mar 24 Python
Python中常见的数制转换有哪些
May 27 Python
python如何变换环境
Jul 21 Python
python3中布局背景颜色代码分析
Dec 01 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
Linux下实现PHP多进程的方法分享
2012/08/16 PHP
使用PHP和HTML5 FormData实现无刷新文件上传教程
2014/09/06 PHP
PHP解析目录路径的3个函数总结
2014/11/18 PHP
php对数组内元素进行随机调换的方法
2015/05/12 PHP
PHP模板引擎Smarty中的保留变量用法分析
2016/04/11 PHP
thinkphp 字母函数详解T/I/N/D/M/A/R/U
2017/04/03 PHP
给jqGrid数据行添加修改和删除操作链接(之一)
2011/11/04 Javascript
输入框过滤非数字的js代码
2014/09/18 Javascript
jQuery插件jRumble实现网页元素抖动
2015/06/05 Javascript
jQuery通用的全局遍历方法$.each()用法实例
2016/07/04 Javascript
jQuery实现打开页面渐现效果示例
2016/07/27 Javascript
探究JavaScript中的五种事件处理程序方式
2016/12/07 Javascript
JavaScript在form表单中使用button按钮实现submit提交方法
2017/01/23 Javascript
常用的 JS 排序算法 整理版
2018/04/05 Javascript
其实你可以少写点if else与switch(推荐)
2019/01/10 Javascript
angula中使用iframe点击后不执行变更检测的问题
2020/05/10 Javascript
python中threading超线程用法实例分析
2015/05/16 Python
Python如何快速上手? 快速掌握一门新语言的方法
2017/11/14 Python
使用python打印十行杨辉三角过程详解
2019/07/10 Python
使用 Django Highcharts 实现数据可视化过程解析
2019/07/31 Python
详解如何用TensorFlow训练和识别/分类自定义图片
2019/08/05 Python
django-rest-swagger对API接口注释的方法
2019/08/29 Python
python wxpython 实现界面跳转功能
2019/12/17 Python
Python实现动态循环输出文字功能
2020/05/07 Python
python3代码中实现加法重载的实例
2020/12/03 Python
会计系个人求职信范文分享
2013/12/20 职场文书
初中物理教学反思
2014/01/14 职场文书
财务总经理岗位职责
2014/02/16 职场文书
开业庆典策划方案
2014/02/18 职场文书
学校党的群众路线教育实践活动制度建设计划
2014/11/03 职场文书
党员个人自我评价
2015/03/03 职场文书
员工自我工作评价
2015/03/06 职场文书
2015年百日安全活动总结
2015/03/26 职场文书
2016公司年会主持词
2015/07/01 职场文书
Python机器学习之基础概述
2021/05/19 Python
Java 泛型详解(超详细的java泛型方法解析)
2021/07/02 Java/Android