参考链接: 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()区别相关推荐

  1. python函数——字典设置默认值 setdefault()

    文章目录 setdefault()描述 setdefault()用法 setdefault()示例 python函数 系列目录:python函数--目录 setdefault()描述 Python 字 ...

  2. 【Matlab】 构造函数时为函数输入设置默认值

    使用python等语言编程时,通常可以直接在函数的输入用"="为输入参数赋予默认值,最近使用matlab做项目时,发现matlab无法这样实现.在看了matlab文档后,发现nar ...

  3. python中怎么设置默认值_在Python中设置应该是列表的参数的默认值的最佳实践?...

    我有一个将列表作为参数的python函数.如果我将参数的默认值设置为如下空列表: def func(items=[]): print items 皮林特会告诉我"危险的默认值[]作为参数&q ...

  4. php函数设置默认值,php函数如何设置默认值作为对象?

    一个函数(实际上是另一个类的构造函数)需要一个类temp的对象作为参数.所以我定义接口项目,并将itemp $obj作为函数参数.这很好,我必须将类temp对象传递给我的函数.但是现在我想设置这个it ...

  5. mysql的sum函数 如何设置默认值_mysql使用sum()出现null的问题,各种总结

    今天进行sql查询时,碰到了一个问题: SQL语句: select r.user_id, r.job_id, sum(t.money) as job_salary from pj_punch_reco ...

  6. [转载] python 函数返回多个值

    参考链接: 在Python中返回多个值 (廖雪峰Python教程学习笔记) 函数体内部的语句在执行时,一旦执行到return,函数就执行完毕,并将结果返回.  如果没有return语句,函数执行完毕后 ...

  7. c语言 为参数设置默认值,js函数参数设置默认值

    前端学HTTP之网关.隧道和中继 前面的话 Web是一种强大的内容发布工具.人们已经从只在网上发送静态的在线文档,发展到共享更复杂的资源,比如数据库内容或动态生成的HTML页面.Web浏览器为用户提供 ...

  8. ajax默认什么方法,ajax设置默认值ajaxSetup()方法

    $(function(){ //设置全局 jQuery Ajax全局参数 $.ajaxSetup({ type:"POST", async:false, cache:false, ...

  9. js 的函数参数的默认值问题

    js函数参数设置默认值 php有个很方便的用法是在定义函数时可以直接给参数设默认值,如: function simue ($a=1,$b=2){   return $a+$b; } echo simu ...

最新文章

  1. 样式集(11)注册页面样式,全部代码附效果图
  2. Gut:卡姆果提取物改变肠道菌群预防小鼠肥胖
  3. java导出多个excel并打成zip包
  4. 【Groovy】集合遍历 ( 使用集合的 findAll 方法查找集合中符合匹配条件的所有元素 | 代码示例 )
  5. SAP CRM Attachment read - performance issue
  6. [bzoj4003][JLOI2015]城池攻占_左偏树
  7. 智能驾驶板块_智能驾驶股票有哪些?智能驾驶股票一览
  8. 第15课 比尔庄园 《小学生C++趣味编程》
  9. java ftp 上传文件到服务器,java实现ftp上传文件到服务器
  10. 贝叶斯算法伪代码_字节跳动算法面经
  11. 关于马克飞象中的Latex语法与CSDN中的区别
  12. python脚本 sonar报告
  13. 【路径规划】全局路径规划算法——Dijkstra算法(含python实现)
  14. 最新计算机台式机小机箱,几款热门台式机主机机箱的参数配置【图文】
  15. MFC对话框标题栏颜色自绘,标题栏由过渡色组成,自绘关闭按钮
  16. nginx的平滑升级
  17. 两万字的Redis笔记!
  18. 南卡和三星蓝牙耳机哪个戴着舒服?佩戴舒适的蓝牙耳机推荐
  19. Collections.sort()方法为List集合内对象进行排序
  20. 什么是Promise?Promise的优点

热门文章

  1. 【POJ3190】Stall Reservations
  2. php odbc 结果集处理,php常用ODBC函数集的简单示例
  3. r语言plotmds_多元统计分析R语言建模| 11 多维标度法MDS
  4. java访问权限修饰符从大到小_程序员的术与道:道——Java修饰符之非访问控制修饰符...
  5. MyBatis→SqlSession、sqlMapConfig.xml、映射XML文件、OGNL、拼接SQL标签、取值查值、批量SQL、一对多多对一多对多
  6. 学Python必看,Python中encode(),decode()的本质
  7. C#基础6:枚举与结构体
  8. Codeforces Beta Round #1:B. Spreadsheets
  9. 2018年全国多校算法寒假训练营练习比赛(第一场)C. 六子冲(模拟)
  10. 置换群Polya定理(poj 2409: Let it Bead)