相同点:

  • 两者是参数相同:dict.get(key, default=None), dict.setdefault(key, default=None)
  • 如果指定的键不存在时,两者都返回默认值,默认是None
  • 如果指定的键存在时,即使设置默认值,返回的还是指定键的值

不同点:

  • 当指定的键不存在时,dict.setdefault()方法可以通过增加键值对来更新字典,而dict.get()方法不行

实例:

dict.get(key, default=None)

>>>dict_1 = {'Name': 'Jack'}
>>>dict_1.get('Age')          #默认default为None,即不返回值
>>>dict_1.get('Age', 'NA')           #当指定的键不存在时,返回default的值'NA'
'NA'
>>>dict_1.get('Name': 'Tom')         #当指定的键存在时,即使设置default的值,返回的也是指定键的值'Jack'
'Jack'
>>>dict_1
{'Name': 'Jack'}                     #dict_1中的键值对没有改变

dict.setdefault(key, default=None)

>>>dict_1 = {'Name': 'Jack'}
>>>dict_1.setdefault('Age')          #默认default为None,即不返回值
>>>dict_1                            #dict_1中已经增加'Age':None的键值对
{'Name': 'Jack', 'Age': None}
>>>dict_1.setdefault('Age', 23)      #当指定的键存在时,即使设置default的值,返回的也是指定键的值None,即不返回值
>>>dict_1
{'Name': 'Jack', 'Age': None}

最新文章

  1. python程序生成平均脸
  2. [转]ASP.NET Core 之 Identity 入门(一)
  3. Android Studio in OSX 提高工作效率的快捷键
  4. 对js中Function的浅见
  5. 谈谈Javascript的this关键字(this is not this)
  6. JS实现移动端图片延迟加载
  7. maven加载spring包
  8. Dyslexic Gollum
  9. SQL随机数的生成
  10. 【转】shell 教程——02 几种常见的Shell
  11. UITableViewCell性能优化
  12. UIAlerView、UIActionSheet 和UIAlertViewController(点击注销确认按钮实现)
  13. el表达式跟ognl表达式的区别
  14. url_for()中的坑,url_for操作对象是函数,而不是route里的路径
  15. spring使用中问题汇总
  16. Error creating document instance. Cause: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; 前言中不允许有内容。
  17. VS报错 error LNK2005: _DllMain@12 已经在 MSVCRTD.lib(dllmain.obj) 中定义
  18. 零基础学Python--------第10章 文件及目录操作
  19. powershell-将powershell脚本排到JOB
  20. JavaEE学习之Spring Security3.x——模拟数据库实现用户,权限,资源的管理

热门文章

  1. Asp.Net MVC anti-forgery token的问题:nameidentifier or identityprovider not present
  2. Linux用户相关文件之用户信息文件
  3. selenium 下载文件设置下载路径
  4. github的代码上传成功但是不显示绿格子(一直拖....心痛的教训.....)
  5. ABAP权限检查,TCode与权限对象进行关联
  6. Vue-router2.0学习笔记(转)
  7. spring cloud 使用feign 遇到问题
  8. PyQt4打包exe文件
  9. django-admin 修改admin自带模版
  10. c# 执行批处理文件