[转载] python函数——字典设置默认值get() 与 setdefault()区别
参考链接: Python字典dictionary | setdefault方法
文章目录
示例代码总结
python函数 系列目录:python函数——目录
在python 中 get()以及setdefault() 都可以达到默认值的作用,但是功能不一样,接下来将用示例对其做说明和解释。 相关博文连接如下: python函数——字典设置默认值 setdefault() python函数——字典get()方法
示例代码
我们将使用dict_1、dict_2 两个字典分别进行 get()和setdefault()操作,观察每一步的观察值。
初始化
>>> dict_1 = {}
>>> dict_2 = {}
使用get()和setdefault()操作
>>> dict_1.get("name", "wangcongying")
'wangcongying'
>>> dict_2.setdefault("name", "wangcongying")
'wangcongying'
返回值均是设置的默认值,但是我们把字典打印出来:
>>> dict_1
{}
>>> dict_2
{'name': 'wangcongying'}
这下看到区别了,使用get()做的默认值操作是不能给字典赋值的,只是作为取数据的默认值操作
如果key 已经存在于字典中,并且有值
>>> dict_1["name"] = "wangcongying"
>>> dict_1
{'name': 'wangcongying'}
>>> dict_2
{'name': 'wangcongying'}
>>> dict_1.get("name", "python")
'wangcongying'
>>> dict_2.setdefault("name", "python")
'wangcongying'
所以在给已经有值的key 做默认值操作的时候,返回的是字典中原有的值。
如果key 已经存在于字典中,没有值
>>> dict_1["gender"] = None
>>> dict_2["gender"] = None
>>> dict_1
{'name': 'wangcongying', 'gender': None}
>>> dict_2
{'name': 'wangcongying', 'gender': None}
>> dict_1.get("gender", "male")
>>> dict_2.setdefault("gender", "male")
>>> dict_1
{'name': 'wangcongying', 'gender': None}
>>> dict_2
{'name': 'wangcongying', 'gender': None}
在给定 None 之后再去设置默认值,返回的还是None,原因是None也是一个值。
总结
get() 只是设置的是取值的初始值,不保留于字典中; setdefault()设置的默认值不只是取值的时候打印,并且会保留于字典中。
[转载] python函数——字典设置默认值get() 与 setdefault()区别相关推荐
- python函数——字典设置默认值 setdefault()
文章目录 setdefault()描述 setdefault()用法 setdefault()示例 python函数 系列目录:python函数--目录 setdefault()描述 Python 字 ...
- 【Matlab】 构造函数时为函数输入设置默认值
使用python等语言编程时,通常可以直接在函数的输入用"="为输入参数赋予默认值,最近使用matlab做项目时,发现matlab无法这样实现.在看了matlab文档后,发现nar ...
- python中怎么设置默认值_在Python中设置应该是列表的参数的默认值的最佳实践?...
我有一个将列表作为参数的python函数.如果我将参数的默认值设置为如下空列表: def func(items=[]): print items 皮林特会告诉我"危险的默认值[]作为参数&q ...
- php函数设置默认值,php函数如何设置默认值作为对象?
一个函数(实际上是另一个类的构造函数)需要一个类temp的对象作为参数.所以我定义接口项目,并将itemp $obj作为函数参数.这很好,我必须将类temp对象传递给我的函数.但是现在我想设置这个it ...
- mysql的sum函数 如何设置默认值_mysql使用sum()出现null的问题,各种总结
今天进行sql查询时,碰到了一个问题: SQL语句: select r.user_id, r.job_id, sum(t.money) as job_salary from pj_punch_reco ...
- [转载] python 函数返回多个值
参考链接: 在Python中返回多个值 (廖雪峰Python教程学习笔记) 函数体内部的语句在执行时,一旦执行到return,函数就执行完毕,并将结果返回. 如果没有return语句,函数执行完毕后 ...
- c语言 为参数设置默认值,js函数参数设置默认值
前端学HTTP之网关.隧道和中继 前面的话 Web是一种强大的内容发布工具.人们已经从只在网上发送静态的在线文档,发展到共享更复杂的资源,比如数据库内容或动态生成的HTML页面.Web浏览器为用户提供 ...
- ajax默认什么方法,ajax设置默认值ajaxSetup()方法
$(function(){ //设置全局 jQuery Ajax全局参数 $.ajaxSetup({ type:"POST", async:false, cache:false, ...
- js 的函数参数的默认值问题
js函数参数设置默认值 php有个很方便的用法是在定义函数时可以直接给参数设默认值,如: function simue ($a=1,$b=2){ return $a+$b; } echo simu ...
最新文章
- 样式集(11)注册页面样式,全部代码附效果图
- Gut:卡姆果提取物改变肠道菌群预防小鼠肥胖
- java导出多个excel并打成zip包
- 【Groovy】集合遍历 ( 使用集合的 findAll 方法查找集合中符合匹配条件的所有元素 | 代码示例 )
- SAP CRM Attachment read - performance issue
- [bzoj4003][JLOI2015]城池攻占_左偏树
- 智能驾驶板块_智能驾驶股票有哪些?智能驾驶股票一览
- 第15课 比尔庄园 《小学生C++趣味编程》
- java ftp 上传文件到服务器,java实现ftp上传文件到服务器
- 贝叶斯算法伪代码_字节跳动算法面经
- 关于马克飞象中的Latex语法与CSDN中的区别
- python脚本 sonar报告
- 【路径规划】全局路径规划算法——Dijkstra算法(含python实现)
- 最新计算机台式机小机箱,几款热门台式机主机机箱的参数配置【图文】
- MFC对话框标题栏颜色自绘,标题栏由过渡色组成,自绘关闭按钮
- nginx的平滑升级
- 两万字的Redis笔记!
- 南卡和三星蓝牙耳机哪个戴着舒服?佩戴舒适的蓝牙耳机推荐
- Collections.sort()方法为List集合内对象进行排序
- 什么是Promise?Promise的优点
热门文章
- 【POJ3190】Stall Reservations
- php odbc 结果集处理,php常用ODBC函数集的简单示例
- r语言plotmds_多元统计分析R语言建模| 11 多维标度法MDS
- java访问权限修饰符从大到小_程序员的术与道:道——Java修饰符之非访问控制修饰符...
- MyBatis→SqlSession、sqlMapConfig.xml、映射XML文件、OGNL、拼接SQL标签、取值查值、批量SQL、一对多多对一多对多
- 学Python必看,Python中encode(),decode()的本质
- C#基础6:枚举与结构体
- Codeforces Beta Round #1:B. Spreadsheets
- 2018年全国多校算法寒假训练营练习比赛(第一场)C. 六子冲(模拟)
- 置换群Polya定理(poj 2409: Let it Bead)