相同点:

  • 两者是参数相同: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. QBuffer简单操作(被看做一个标准的可随机访问的文件,支持信号)

    Qt中通过QBuffer类我们可以使用io的方式访问.操作QByteArray中的内容.此时,QByteArray被看做一个标准的可随机访问的文件.例如: QBuffer buffer; char c ...

  2. jenkins配置SVN报错

    jenkins配置SVN报错,如图:

  3. 0x07 MySQL 多表查询

    Some Content From——Egon's Blog http://www.cnblogs.com/linhaifeng/articles/7126847.html 一 准备表 准备表 #建表 ...

  4. Impala SQL 语言元素(翻译)

    摘要: http://www.cloudera.com/content/cloudera-content/cloudera-docs/Impala/latest/Installing-and-Usin ...

  5. tfboys——tensorflow模块学习(三)

    tf.estimator模块 定义在:tensorflow/python/estimator/estimator_lib.py 估算器(Estimator): 用于处理模型的高级工具. 主要模块 ex ...

  6. Maven学习笔记—仓库

    Maven仓库 1 什么是Maven仓库 在Maven中,任何一个依赖.插件或者项目构建的输出,都可以成为构件,而Maven通常在某个位置统一的存储所有Maven项目共享的构件,这个统一的位置就是Ma ...

  7. 剑指offer 面试47题

    面试47题:题:礼物的最大价值 题目:在一个mxn的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于0),你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格,直到到达棋盘的 ...

  8. oracle导入数据库报错:IMP-00019: 由于 ORACLE 错误 12899 而拒绝行 IMP-00003: 遇到 ORACLE 错误 12899

    主要是字符集 成 导入的Oracle服务器的字符集 对应不上. 以下方案为是修改服务器的字符集.    这样会影响之前的Oracle其他数据库的数据显示(正式服务器慎用) 个人认为应该修改导出文件的字 ...

  9. 顽石系列:Linux基础笔试

    顽石系列:Linux基础笔试 系统操作 压缩文件 扩展名 压缩程序 *.Z compress *.zip zip *.gz gzip *.bz2 bzip2 *.xz xz *.tar tar 程序打 ...

  10. HackerRank - lonely-integer 【水】

    题意 给出一系列数字,输出那个出现次数为奇数次的数字 思路 用MAP标记一下,在输入的时候判断一下 之前有没有输入过,如果有,就抹掉 最后剩下的那个 就是出现次数为奇数的 或者可以用 位运算 AC代码 ...