相同点:

  • 两者是参数相同: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}

python字典中dict.get()和dict.setdefault()的异同点的更多相关文章

  1. 十四、python字典中的方法汇总

    '''1.访问.修改,删除字典中的值:''' dict={'a':'11','b':'22','c':'33','d':'44'}print dict['a'],dict['d'] #访问dict[' ...

  2. python字典中的元素类型

    python字典默认的是string item={"browser " : 'webdriver.irefox()', 'url' : 'http://xxx.com'} 如果这样 ...

  3. python 字典中 重复值去除

    tuple_r_dict = lambda _dict: dict(val[::-1] for val in _dict.items()) # Python3.x tuple_r_dict(tuple ...

  4. 实验:将系统进程映射移到 Python 字典中

    参考官方文档,测试下列代码,把oracle的进程映射到python的字典中: [oracle@ycr python]$ more pro_get.py import reimport subproce ...

  5. 判断python字典中key是否存在的两种方法

    今天来说一下如何判断字典中是否存在某个key,一般有两种通用做法,下面为大家来分别讲解一下: 第一种方法:使用自带函数实现. 在python的字典的属性方法里面有一个has_key()方法,这个方法使 ...

  6. python字典中添加项

    body_daily_close = { "mappings": { "properties": { "trade_date": { &qu ...

  7. python学习中,list/tuple/dict格式化遇到的问题

    昨天上了python培训的第一课,学习了基础知识.包括类型和赋值,函数type(),dir(),id(),help()的使用,list/tuple/dict的定义以及内置函数的操作,函数的定义,控制语 ...

  8. Python 字典中一键对应多个值

    #字典的一键多值 print'方案一 list作为dict的值 值允许重复' d1={} key=1 value=2 d1.setdefault(key,[]).append(value) value ...

  9. Python字典中的值为列表或字典的构造方法

    转自: https://blog.csdn.net/buside/article/details/81323871 1.值为列表的构造方法 dic = {} dic.setdefault(key,[] ...

随机推荐

  1. 阿里巴巴java开发手册阅读笔记

    1. long 或者 Long 初始赋值时,必须使用大写的 L. Long a = 2L; 2. POJO 类(DO/DTO/BO/VO )必须写 toString 方法 3. final 可提高程序 ...

  2. Eslint使用指南

    本文主要讲如何在前端项目中引入Eslint静态代码检查工具,提升代码质量和统一代码风格,避免一些低级错误. 一 引入静态代码检查工具的目的 在团队协作中,为避免低级 Bug.产出风格统一的代码,会预先 ...

  3. 【生产问题】--8KW的数据表导致业务卡顿

    问题描述:业务突然变得巨卡 分析思路: (1)分析用户请求进程:查看是否有长期运行霸占锁的情况,或者进程数量巨多.很明显我这里就是巨多,正常情况一般0~40来个的样子,在业务使用高峰期居然达到了140 ...

  4. 024-Spring Boot 应用的打包和部署

    一.概述 二.手工打包[不推荐] 打包命令:maven clean package 打包并导出依赖:maven clean package dependency:copy-dependencies 1 ...

  5. form 表单<input type="button" value="登录" onclick="loginSubmit ()"/> 点击提示 Uncaught TypeError: loginSubmit is not a function

    在网上搜了一堆东东,仔细看了一下,再加上实验,发现原因出在<form>中. <form method="post"> <button type=&qu ...

  6. Python 8 协程/异步IO

    协程 协程,又称微线程,纤程.英文名Coroutine.一句话说明什么是线程:协程是一种用户态的轻量级线程. 协程拥有自己的寄存器上下文和栈.协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来 ...

  7. Django 进阶篇之 Form验证

    Django Form验证 在实际的生产环境中比如登录和验证的时候,我们一般都使用Jquery+ajax来判断用户的输入是否为空,假如JS被禁用的话,咱们这个认证屏障是不是就消失了呢?(虽然一般不会禁 ...

  8. Redis的分布式配置

    Redis存在三种级别的分布式部署:主从复制.主从切换.集群配置,推荐使用主从切换模式. 主从复制 启动主服务:端口6379 启动从服务:端口6380, 配置文件中加上 slaveof 127.0.0 ...

  9. Linux文件系统管理 挂载命令mount

    概述 mount命令用来挂载Linux系统外的文件. Linux 中所有的存储设备都必须挂载之后才能使用,包括硬盘.U 盘和光盘(swap 分区是系统直接调用的,所以不需要挂载).不过,硬盘分区在安装 ...

  10. Swing 添加超链接 打开页面

    http://lazycat774880994.iteye.com/blog/567412  Swing中打开一个连接或者web页面的一些记录,这几种方式是在项目中有这样子用到过,特来记录一下,以便下 ...