首页 > 编程语言 >python字典中dict.get()和dict.setdefault()的异同点

python字典中dict.get()和dict.setdefault()的异同点

时间:2022-12-29 16:12:43浏览次数:41  
标签:None setdefault get default Age dict Jack

1.相同点:

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

2.不同点:

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

3.实例:

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'}          # python学习交流群:711312441
>>>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}

标签:None,setdefault,get,default,Age,dict,Jack
From: https://www.cnblogs.com/djdjdj123/p/17012824.html

相关文章

  • Mac——Mac 安装apt-get
    MAC系统版本:10.13和Linux系统不同的是,Mac系统默认是不带有apt-get软件包工具的,所以要想在Mac上使用上方便的apt-get就需要自己来安装它。一、安装fink使用apt-get首先......
  • Ajax提交GET后台处理
    <?phpheader("Content-type:text/html;charset=utf-8");//登录一般都是get请求所以我们这里使用一个变量接受所以get请求$data=$_GET;//吧所有获取的参数赋值......
  • Getting Started with Spring Cloud Stream 入门
    这篇文章是与BenWilcock共同撰写的,他是SpringatPivotal的产品和技术营销经理。......
  • Spagetti code and keyboard symbols
    Whatisspaghetticodeexactly?Spaghetticodeisthegeneraltermusedforanysourcecodethat’shardtounderstandbecauseithasnodefinedstructure.Whi......
  • MINI-LCTF2022 - kgadget 学习记录
    关于ret2dir用来绕smep、smap、pxn等用户空间与内核空间隔离的防护手段。首先,在内核中存在directmappingarea,线性地直接映射了整个物理内存空间。这就意味着,对于......
  • Android-Widget重装上阵
    如果要在Android系统中找一个一直存在,但一直被人忽略,而且有十分好用的功能,那么Widget,一定算一个。这个从Android1.x就已经存在的功能,经历了近10年的迭代,在遭到无数无视和白......
  • vs2022 打包多个类生成nuget包
    1.单个类直接右键项目,打包就生成nuget包了2.如果是多个类想打成一个包,新建一个类,然后将所有其他类引入,打包新建的类就可以了,3.更改版本号等信息,右键项目属性-包-看到包版......
  • FL Studio 20 Getting Started Manual
    重要提示:本指南是一份通用的入门手册,适用于所有FLStudio版本。所有FLStudio版本的入门手册。有些功能并不是所有版本。例如。果味版不包括音频切片。请查看我们的网站ht......
  • 调用feign远程get请求的接口却提示 Request method ‘POST‘ not supported
    调用feign远程get请求的接口却提示“Requestmethod‘POST‘notsupported”修改前后的feign接口对比:(修改前)复制代码/**获取用户*/@GetMapping("/user/list")R......
  • 从CASP12到CASP14的常规目标类别中蛋白质结构预测(protein structure prediction )的顶
    https://doi.org/10.3390/biom12091246 ......