python字典中dict.get()和dict.setdefault()的异同点
相同点:
- 两者是参数相同: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()的异同点的更多相关文章
- 十四、python字典中的方法汇总
'''1.访问.修改,删除字典中的值:''' dict={'a':'11','b':'22','c':'33','d':'44'}print dict['a'],dict['d'] #访问dict[' ...
- python字典中的元素类型
python字典默认的是string item={"browser " : 'webdriver.irefox()', 'url' : 'http://xxx.com'} 如果这样 ...
- python 字典中 重复值去除
tuple_r_dict = lambda _dict: dict(val[::-1] for val in _dict.items()) # Python3.x tuple_r_dict(tuple ...
- 实验:将系统进程映射移到 Python 字典中
参考官方文档,测试下列代码,把oracle的进程映射到python的字典中: [oracle@ycr python]$ more pro_get.py import reimport subproce ...
- 判断python字典中key是否存在的两种方法
今天来说一下如何判断字典中是否存在某个key,一般有两种通用做法,下面为大家来分别讲解一下: 第一种方法:使用自带函数实现. 在python的字典的属性方法里面有一个has_key()方法,这个方法使 ...
- python字典中添加项
body_daily_close = { "mappings": { "properties": { "trade_date": { &qu ...
- python学习中,list/tuple/dict格式化遇到的问题
昨天上了python培训的第一课,学习了基础知识.包括类型和赋值,函数type(),dir(),id(),help()的使用,list/tuple/dict的定义以及内置函数的操作,函数的定义,控制语 ...
- Python 字典中一键对应多个值
#字典的一键多值 print'方案一 list作为dict的值 值允许重复' d1={} key=1 value=2 d1.setdefault(key,[]).append(value) value ...
- Python字典中的值为列表或字典的构造方法
转自: https://blog.csdn.net/buside/article/details/81323871 1.值为列表的构造方法 dic = {} dic.setdefault(key,[] ...
随机推荐
- Testlink安装成功后首页提示“There are security warning for your consideration.”
Testlink安装成功后,登录Testlink,首页显示警告信息: “There are security warnings for your consideration. See details ...
- 我的Android进阶之旅------>百度地图学习:BDLocation.getLocType ( )值分析
BDLocation类,封装了定位SDK的定位结果,在BDLocationListener的onReceive方法中获取.通过该类用户可以获取error code,位置的坐标,精度半径等信息.具体方法 ...
- F110的几个功能
1.F-59, 没有找到函数, 使用BDC BAPI_ACC_DOCUMENT_POST 必须创建有借贷2 line 的凭证,需求要参考原始的SA类型凭证, 创建一个单条的 科目 = 供应商 的凭证, ...
- open函数and文件处理
一 介绍 计算机系统分为:计算机硬件,操作系统,应用程序三部分 我们用python或其他语言编写的应用程序若想要把数据永久保存下来,必须要保存于硬盘中,这就涉及到应用程序要操作硬件,应用程序是无法操作 ...
- Kattis - register 【水】
题意 就是 有一堆容器,然后可以执行加的操作,每个容量是 2, 3, 5, 7, 11, 13, 17, 19 然后 有进位 比如第一个 容器,到2了,就会重置为0,然后 下一个容器+ 1, 但是要保 ...
- ReactNative学习一
ReactNative 主要学习来源于RN官方文档https://reactnative.cn/docs/0.51/getting-started.html 不过除了这个RN官方文档,其他RN中文 ...
- 20145240 《Java程序设计》第五次实验报告
20145240 <Java程序设计>第五次实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1452 指导教师:娄嘉鹏 实验日期:2016.05.06 实验 ...
- MySQL数据库基本操作(三)
MySQL补充: mysql是关系型数据库,关系数据库,是建立在关系模型基础上的数据库,现实世界中的各种实体,以及实体之间的各种联系,均用关系模型(table)来表示.#关系模型就是指二维表格模型,因 ...
- H3C光模块相关命令和检测方法
<Sysname> dis transceiver interface GigabitEthernet 1/0/28 查看 GigabitEthernet1/0/28 transcei ...
- juniper ssg 常用命令
netscreen juniper ssg操作命令 2013年4月10日 命令行下取得配置信息 get config 命令行下取得相应时间设置 get clock set vrout ...