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实现购物程序思路及代码
Jul 24 Python
python爬取亚马逊书籍信息代码分享
Dec 09 Python
Python AES加密实例解析
Jan 18 Python
[原创]Python入门教程1. 基本运算【四则运算、变量、math模块等】
Oct 28 Python
python实现QQ批量登录功能
Jun 19 Python
python tkinter窗口最大化的实现
Jul 15 Python
Python 写入训练日志文件并控制台输出解析
Aug 13 Python
Python导入模块包原理及相关注意事项
Mar 25 Python
jupyter notebook插入本地图片的实现
Apr 13 Python
Python中的Cookie模块如何使用
Jun 04 Python
Python lxml库的简单介绍及基本使用讲解
Dec 22 Python
python实现web邮箱扫描的示例(附源码)
Mar 30 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中使用CURL伪造来路抓取页面或文件
2011/05/04 PHP
Laravel 5.4.36中session没有保存成功问题的解决
2018/02/19 PHP
php 使用ActiveMQ发送消息,与处理消息操作示例
2020/02/23 PHP
js的闭包的一个示例说明
2008/11/18 Javascript
Javascript 键盘keyCode键码值表
2009/12/24 Javascript
用dtree实现树形菜单 dtree使用说明
2011/10/17 Javascript
jCallout 轻松实现气泡提示功能
2013/09/22 Javascript
Underscore源码分析
2015/12/30 Javascript
jQuery实现订单提交页发送短信功能前端处理方法
2016/07/04 Javascript
js前端解决跨域问题的8种方案(最新最全)
2016/11/18 Javascript
jQuery ajax实现省市县三级联动
2021/03/07 Javascript
Vue中的v-cloak使用解读
2017/03/27 Javascript
PHP7新特性简述
2017/06/11 Javascript
JS实现匀加速与匀减速运动的方法示例
2017/09/04 Javascript
bootstrap-table组合表头的实现方法
2017/09/07 Javascript
jquery鼠标悬停导航下划线滑出效果
2017/09/29 jQuery
详解Vue基于 Nuxt.js 实现服务端渲染(SSR)
2018/04/05 Javascript
详解如何使用babel进行es6文件的编译
2018/05/29 Javascript
JQuery扩展对象方法操作示例
2018/08/21 jQuery
简介Python中用于处理字符串的center()方法
2015/05/18 Python
简单谈谈Python流程控制语句
2016/12/04 Python
django数据库migrate失败的解决方法解析
2018/02/08 Python
关于Pycharm无法debug问题的总结
2019/01/19 Python
Python使用pandas和xlsxwriter读写xlsx文件的方法示例
2019/04/09 Python
使用python来调用CAN通讯的DLL实现方法
2019/07/03 Python
Python实现银行账户资金交易管理系统
2020/01/03 Python
python交互模式基础知识点学习
2020/06/18 Python
Python批量修改xml的坐标值全部转为整数的实例代码
2020/11/26 Python
html5中的一些标签学习(心得)
2016/10/18 HTML / CSS
欧缇丽英国官方网站:Caudalie英国
2016/08/17 全球购物
银行实习人员自我鉴定
2013/09/22 职场文书
大学生求职信怎么写
2015/03/19 职场文书
热血教师观后感
2015/06/10 职场文书
员工担保书范本
2015/09/22 职场文书
2016春季小学开学寄语
2015/12/03 职场文书
Python中三种花式打印的示例详解
2022/03/19 Python