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代理抓取并验证使用多线程实现
May 03 Python
Python中列表(list)操作方法汇总
Aug 18 Python
Python实现基于HTTP文件传输实例
Nov 08 Python
python中json格式数据输出的简单实现方法
Oct 31 Python
Python中取整的几种方法小结
Jan 06 Python
Python基于win32ui模块创建弹出式菜单示例
May 09 Python
pandas修改DataFrame列名的实现方法
Feb 22 Python
Django实现分页显示效果
Oct 31 Python
在python中使用pymysql往mysql数据库中插入(insert)数据实例
Mar 02 Python
python3发送request请求及查看返回结果实例
Apr 30 Python
TensorFlow固化模型的实现操作
May 26 Python
使用keras实现Precise, Recall, F1-socre方式
Jun 15 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对二维数组按指定键值key排序示例代码
2013/11/26 PHP
php设计模式之原型模式分析【星际争霸游戏案例】
2020/03/23 PHP
一个XML格式数据转换为图表的例子
2010/02/09 Javascript
解决jQuery插件tipswindown与hintbox冲突
2010/11/05 Javascript
js中点击空白区域时文本框与隐藏层的显示与影藏问题
2013/08/26 Javascript
js中的异常处理try...catch使用介绍
2013/09/21 Javascript
网站内容禁止复制和粘贴、另存为的js代码
2014/02/26 Javascript
javascript实现全局匹配并替换的方法
2015/04/27 Javascript
基于jQuery实现动态数字展示效果
2015/08/12 Javascript
JS实现带有抽屉效果的产品类网站多级导航菜单代码
2015/09/15 Javascript
Node.js 数据加密传输浅析
2016/11/16 Javascript
详解JSON1:使用TSQL查询数据和更新JSON数据
2016/11/21 Javascript
微信小程序scroll-view实现横向滚动和上拉加载示例
2017/03/06 Javascript
Ionic3 UI组件之autocomplete详解
2017/06/08 Javascript
浅谈Node模块系统及其模式
2017/11/17 Javascript
vue ssr 指南详读
2018/06/29 Javascript
jQuery实现的简单歌词滚动功能示例
2019/01/07 jQuery
nodejs中各种加密算法的实现详解
2019/07/11 NodeJs
解决vue更新路由router-view复用组件内容不刷新的问题
2019/11/04 Javascript
在vue中实现清除echarts上次保留的数据(亲测有效)
2020/09/09 Javascript
[15:15]教你分分钟做大人:狙击手
2014/10/30 DOTA
在Python的Django框架中编写错误提示页面
2015/07/22 Python
Python中文分词实现方法(安装pymmseg)
2016/06/14 Python
详解Python 模拟实现生产者消费者模式的实例
2017/08/10 Python
django 创建过滤器的实例详解
2017/08/14 Python
Python xlwt设置excel单元格字体及格式
2020/04/18 Python
Python单元测试实例详解
2018/05/25 Python
解决numpy矩阵相减出现的负值自动转正值的问题
2020/06/03 Python
Python的logging模块基本用法
2020/12/24 Python
保密工作责任书
2014/04/16 职场文书
奥巴马竞选演讲稿
2014/05/15 职场文书
消防宣传口号
2014/06/16 职场文书
护林员个人总结
2015/03/04 职场文书
告诉你一个秘密:富人致富的五大优点
2019/07/11 职场文书
MySQL系列之四 SQL语法
2021/07/02 MySQL
Redis入门教程详解
2021/08/30 Redis