Python字典中的setdefault方法
文章目录
- 1. setdefault()方法
- 2. setdefault()方法构造value值为列表/字典的字典
- 2.1 构造value值为列表的字典
- 2.2 构造value值为字典的字典
- 3. setdefault() 和 get() 方法比较
- 3.1 获取键值
- 3.2 修改value中的列表值
1. setdefault()方法
Python 字典 setdefault() 函数和 get()方法 类似, 如果键不存在于字典中,将会添加键并将值设为默认值。
setdefault() 方法语法:
dic.setdefault(key, default=None)
- 如果键在字典中,返回这个键所对应的值。
- 如果键不在字典中,向字典 中插入这个键,并且以default为这个键的值,并返回 default。default的默认值为None
2. setdefault()方法构造value值为列表/字典的字典
2.1 构造value值为列表的字典
dic.setdefault(key,[]).append(value)
示例如下:
dic = {}
dic.setdefault('a',[]).append(1)
dic.setdefault('a',[]).append(2)print(dic)
# {'a': [1, 2]}
2.2 构造value值为字典的字典
dic.setdefault(key,{})[value] =1
示例如下:
dic = {}
dic.setdefault('b',{})['f']=1
dic.setdefault('b',{})['h']=1
dic.setdefault('b',{})['g']=1print(dic)
# {'b': {'f': 1, 'h': 1, 'g': 1}}
3. setdefault() 和 get() 方法比较
3.1 获取键值
get()方法和setdefault()两种方法的作用都是获取键的键值,如果键存在于字典中,则返回键值;如果字典中不存在这个键,则返回一个默认值(这个值默认是None,但可以自行设定),如下:
d = {"x":1, "y":2}
print(d.get("a")) # None
print(d.get("b",9)) # 9
d = {"x":1, "y":2}
print(d.setdefault("a")) # None
print(d.setdefault("b",9)) # 9
可以看到在获取键值方面, get()方法和setdefault()方法都可以用一行代码实现。
3.2 修改value中的列表值
假设现在有一个学生字典, 字典中包含学生的 name, age, hobby信息。字典结构如下:
student_dic = {'name':'张三', 'age': 10, 'hobby': ['唱歌', '跳舞']}
假设我们要给学生添加爱好信息,但是我们不知道hobby这个键存不存在.
三步法:
# 1)从字典中取到hobby对应的值,如果没有hobby这个键,则设置这个值为空列表
hobbies = student_dic.get('hobby', []) # get()方法
hobbies = student_dic.setdefault('hobby', []) # setdefault()方法# 2)对hobbies值进行更新操作
hobbies.append('打球')# 3)将更新后的值赋值回字典
student_dic['hobby'] = hobbies# print(student_dic)
# {'name': '张三', 'age': 10, 'hobby': ['唱歌', '跳舞', '打球']}
一步法:
student_dic.get('hobby', []).append('打球') # get()方法
student_dic.setdefault('hobby', []).append('打球') # setdefault()方法# print(student_dic)
# {'name': '张三', 'age': 10, 'hobby': ['唱歌', '跳舞', '打球']}
Python字典中的setdefault方法相关推荐
- Python字典(Dictionary)的setdefault()方法的详解,字典中的赋值技巧
定义 1.字典的setdefault() 方法和 get()方法类似,返回指定键的值,如果键不在字典中,将会添加键值对,值默认为None. 2.setdefault()与get()区别: setdef ...
- python字典get计数_python字典中的get方法与setdefault方法
Python的字典中的get()方法,接受一个键和一个缺省值.如果键在字典中,get返回对应的值,否则返回缺省值,并不会修改字典或添加不存在的键值对. dic = dict(zip('abc',ran ...
- Python字典的11个方法超级详解
Python字典是一种可变容器模型,且可存储任意类型对象,如字符串.数字.元组等其他容器模型. print(dir(dict)) ['clear', 'copy', 'fromkeys', 'get' ...
- 【Python入门】Python字典的11个方法超级详解
Python字典是一种可变容器模型,且可存储任意类型对象,如字符串.数字.元组等其他容器模型. print(dir(dict)) ['clear', 'copy', 'fromkeys', 'get' ...
- Python 字典中get() 函数
Python 字典中get() 函数返回指定键的值. 语法:value = dict.get(key, default=None) 参数 key – 字典中要查找的键. default – 如果指定键 ...
- python字典中的键是什么_在python字典中作为键的对象
我试图在python字典中使用一个对象作为键,但是它的行为方式让我无法完全理解. 首先,我创建一个以对象为键的字典:package_disseminators = { ContentType(&quo ...
- 如何检查Python字典中是否存在密钥
Hey there! Today we are going to cover the various techniques or methods to check if a given key exi ...
- Python基础——修改Python字典中的key(键)
python字典中,值可任意更改:但键是唯一的,不支持直接修改.若真的需要修改字典中的键,可通过几种间接方式实现.以下提供三种方法. 文章目录 新建字典: 尝试直接修改: 进行间接修改: 方法一(推荐 ...
- python字典中给一个键增加值_在Python字典中向单个键添加多个值
Python字典今天真的很吸引我.我一直在堆栈上奔波,试图找到一种方法,将一个新值简单地附加到python字典中的现有键上,但每次尝试都失败,使用的语法与这里相同.在 我要做的是:#cursor se ...
最新文章
- 匹夫细说C#:委托的简化语法,聊聊匿名方法和闭包
- linux下查看网卡型号
- 科大星云诗社动态20210415
- Excel表格内容导出到页面
- Linux中mysql的卸载和重装,在Linux下面卸载与重新安装Postgresql
- Netty : netty 4如何解决空轮询bug
- python是什么-了解什么是Python面向对象(1)
- WINDOWS上svn服务器自动部署
- Web自动化测试:超详细的环境搭建步骤
- 基于 libdmtx和zxing的DM二维码识别总结
- 动态生成鼠标指针--可以利用已有的图片生成鼠标指针--C#代码
- 空间数据格式转换之MapInfo mid/mif文件转ArcGIS shpfile文件
- c语言优先级详解pdf,C语言符号优先级.pdf
- WEB基础之:创建表格
- 校验一,两位小数0-999999.99,填写其他内容提示“成绩填写有误”
- 酒店系统主服务器是什么意思,酒店主服务器硬件配置
- Go 基础(二)关键字和代码注释
- html代码的魔方加密,三维魔方加密算法如何给文本文件加密
- 满满干货!送给想学生物竞赛的同学们一份入门指南
- 猫眼api html,爬取猫眼电影数据(示例代码)
热门文章
- python计算当前时间的上个季度值
- Linux常用命令(2)- - -Linux达人养成计划I
- 鸿蒙开发者大会延期6月份,华为8月开最大规模开发者大会 正抓紧调试鸿蒙系统...
- IXP425上linux MTD分析
- Java程序员职场全功略 从小工到专家 连载四 IT人不容易
- python面试题汇总(史上最全)
- docker_note_3_Docker容器的创建、启动、和停止 、导入、导出、删除容器,docker仓库
- restful风格接口
- 1526:宗教信仰——简单并查集
- Linux打包压缩:zcat、compress、gzip、bzip、xz、zip、tar、cpio