文章目录

  • 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方法相关推荐

  1. Python字典(Dictionary)的setdefault()方法的详解,字典中的赋值技巧

    定义 1.字典的setdefault() 方法和 get()方法类似,返回指定键的值,如果键不在字典中,将会添加键值对,值默认为None. 2.setdefault()与get()区别: setdef ...

  2. python字典get计数_python字典中的get方法与setdefault方法

    Python的字典中的get()方法,接受一个键和一个缺省值.如果键在字典中,get返回对应的值,否则返回缺省值,并不会修改字典或添加不存在的键值对. dic = dict(zip('abc',ran ...

  3. Python字典的11个方法超级详解

    Python字典是一种可变容器模型,且可存储任意类型对象,如字符串.数字.元组等其他容器模型. print(dir(dict)) ['clear', 'copy', 'fromkeys', 'get' ...

  4. 【Python入门】Python字典的11个方法超级详解

    Python字典是一种可变容器模型,且可存储任意类型对象,如字符串.数字.元组等其他容器模型. print(dir(dict)) ['clear', 'copy', 'fromkeys', 'get' ...

  5. Python 字典中get() 函数

    Python 字典中get() 函数返回指定键的值. 语法:value = dict.get(key, default=None) 参数 key – 字典中要查找的键. default – 如果指定键 ...

  6. python字典中的键是什么_在python字典中作为键的对象

    我试图在python字典中使用一个对象作为键,但是它的行为方式让我无法完全理解. 首先,我创建一个以对象为键的字典:package_disseminators = { ContentType(&quo ...

  7. 如何检查Python字典中是否存在密钥

    Hey there! Today we are going to cover the various techniques or methods to check if a given key exi ...

  8. Python基础——修改Python字典中的key(键)

    python字典中,值可任意更改:但键是唯一的,不支持直接修改.若真的需要修改字典中的键,可通过几种间接方式实现.以下提供三种方法. 文章目录 新建字典: 尝试直接修改: 进行间接修改: 方法一(推荐 ...

  9. python字典中给一个键增加值_在Python字典中向单个键添加多个值

    Python字典今天真的很吸引我.我一直在堆栈上奔波,试图找到一种方法,将一个新值简单地附加到python字典中的现有键上,但每次尝试都失败,使用的语法与这里相同.在 我要做的是:#cursor se ...

最新文章

  1. 匹夫细说C#:委托的简化语法,聊聊匿名方法和闭包
  2. linux下查看网卡型号
  3. 科大星云诗社动态20210415
  4. Excel表格内容导出到页面
  5. Linux中mysql的卸载和重装,在Linux下面卸载与重新安装Postgresql
  6. Netty : netty 4如何解决空轮询bug
  7. python是什么-了解什么是Python面向对象(1)
  8. WINDOWS上svn服务器自动部署
  9. Web自动化测试:超详细的环境搭建步骤
  10. 基于 libdmtx和zxing的DM二维码识别总结
  11. 动态生成鼠标指针--可以利用已有的图片生成鼠标指针--C#代码
  12. 空间数据格式转换之MapInfo mid/mif文件转ArcGIS shpfile文件
  13. c语言优先级详解pdf,C语言符号优先级.pdf
  14. WEB基础之:创建表格
  15. 校验一,两位小数0-999999.99,填写其他内容提示“成绩填写有误”
  16. 酒店系统主服务器是什么意思,酒店主服务器硬件配置
  17. Go 基础(二)关键字和代码注释
  18. html代码的魔方加密,三维魔方加密算法如何给文本文件加密
  19. 满满干货!送给想学生物竞赛的同学们一份入门指南
  20. 猫眼api html,爬取猫眼电影数据(示例代码)

热门文章

  1. python计算当前时间的上个季度值
  2. Linux常用命令(2)- - -Linux达人养成计划I
  3. 鸿蒙开发者大会延期6月份,华为8月开最大规模开发者大会 正抓紧调试鸿蒙系统...
  4. IXP425上linux MTD分析
  5. Java程序员职场全功略 从小工到专家 连载四 IT人不容易
  6. python面试题汇总(史上最全)
  7. docker_note_3_Docker容器的创建、启动、和停止 、导入、导出、删除容器,docker仓库
  8. restful风格接口
  9. 1526:宗教信仰——简单并查集
  10. Linux打包压缩:zcat、compress、gzip、bzip、xz、zip、tar、cpio