Python进阶之路 setdefault方法
6.3.7 setdefault方法
setdefault方法用于设置key的默认值。该方法接收两个参数,第1个参数表示key,第2个参数表示默认值。如果key在字典中不存在,那么setdefault方法会向字典中添加这个key,并用第2个参数作为key的值。该方法会返回这个默认值。如果未指定第2个参数,那么key的默认值是None。如果字典中已经存在这个key,setdefault不会修改key原来的值,而且该方法会返回key原来的值。
[例 6.11] 本例演示了如何使用setdefault方法向字典中添加新的key-value对,以及获取原有key的值。
#定义一个空字典
dict = {}print(dict.setdefault('name','Bill'))
#向字典中添加一个名为name的key,默认值是Bill,输出结果:Billprint(dict)
#输出结果:{'name': 'Bill'}print(dict.setdefault('name','Mike'))
#并没有改变name的值,输出结果:Billprint(dict)
#输出结果:{'name': 'Bill'}#向字典中添加一个名为age的key,默认值是None,输出结果:None
print(dict.setdefault('age'))print(dict)
#输出结果:{'name': 'Bill', 'age': None}
输出结果:
Bill
{'name': 'Bill'}
Bill
{'name': 'Bill'}
None
{'name': 'Bill', 'age': None}
可以看到,上面的代码中使用setdefault方法第1次设置name时,向字典中添加了一个新的key-value对,而第2次设置name时,字典元素并没有任何变化。而setdefault方法返回了第1次设置name的值(Bill),也就是name原来的值。
可能会有人有这样的疑问:这个setdefault方法不就是向字典中添加一个key-value对吗?这里所谓的默认值(setdefault方法第2个参数)其实就是key的值。与dict[key]=value有什么区别?
其实如果key在字典中不存在,setdefault(key,value)方法与dict[key] = value形式是完全一样的,区别就是当key在字典中存在的情况下。setdefault(key,value)并不会改变原值,而dict[key] = value是会改变原值的。所以setdefault方法主要用于向字典中添加一个key-value对,而不是修改key对应的值。
Python进阶之路 setdefault方法相关推荐
- Python 进阶之路 (九) 再立Flag, 社区最全的itertools深度解析(上)
前言 大家好,今天想和大家分享一下我的itertools学习体验及心得,itertools是一个Python的自带库,内含多种非常实用的方法,我简单学习了一下,发现可以大大提升工作效率,在sf社区内没 ...
- Python 进阶之路 (十二) 尾声即是开始
Python进阶之路总结 大家好,我的<< Python进阶之路>>到这一期就到此为止了,和 <<Python 基础起步>>不同,在掌握了一些基础知识后 ...
- Python 进阶之路 (八) 最用心的推导式详解 (附简单实战及源码)
什么是推导式 大家好,今天为大家带来问我最喜欢的Python推导式使用指南,让我们先来看看定义~ 推导式(comprehensions)是Python的一种独有特性,推导式是可以从一个数据序列构建另一 ...
- 毛毛Python进阶之路6——MySQL 数据库(二)
毛毛Python进阶之路6--MySQL 数据库(二) 一.对于自增 show create table 表名; # 查看表是怎样创建的. show create table 表名\G; #将某个表旋 ...
- Python字典中的setdefault方法
文章目录 1. setdefault()方法 2. setdefault()方法构造value值为列表/字典的字典 2.1 构造value值为列表的字典 2.2 构造value值为字典的字典 3. s ...
- Python进阶之路 静态方法和类方法
静态方法和类方法 Python类包含三种方法:实例方法.静态方法和类方法.其中,实例方法在前面的章节已经多次使用了.要想调用实例方法,必须要实例化类,然后才可以调用.也就是说,调用实例化方法需要类的实 ...
- Python进阶之路第一话之python引力
Python的魅力:我来引你中毒 我不想说一些Python是世界最好的编程语言之类的鬼话,在我看来,每一种编程语言都有他们各自擅长的领域和不擅长的领域.举个例子,我用一根针,来削铅笔,很费劲不能实现, ...
- Python学习day07 - Python进阶(1) 内置方法
Python学习day07-Python进阶(1)数据类型的内置方法一. 数字类型内置方法1. 整型内置方法1.1 作用1.2 定义方法1.3 内置方法1.4 存在一个还是多个值1.5 有序or无序1 ...
- 《正规军的Python进阶之路|Python技能树测评》
通过<Python技能树测评>判断自己在哪个级别: Python技能树测评[https://bbs.csdn.net/skill/python] 完整的[Python]学习体系,给你正规军 ...
最新文章
- postgreSQL外键引用查询 查询外键被那些表占用
- jQuery的$.fn使用
- java编写存钱_用Java编写一个简单的存款
- CentOS下的抓包服务:rpcapd(WinPcap)
- CRM Fiori pipeline应用的背景色问题
- 训练日志 2019.8.23
- Helper Devise: could not find the `Warden::Proxy` instance on request environment
- 微服务学习之服务治理、服务注册与发现、Eureka【Hoxton.SR1版】
- 从零开始学 Web 之 CSS(三)链接伪类、背景、行高、盒子模型、浮动
- Javascript高级程序设计第四版详细测评
- 金笛JDMAIL打造公务员邮件系统
- hibernate官网下载
- u校园答题技巧 答题助手 最新可用
- 如何删除itunes中的ipa安装包
- webpack ——自定义Loader,将i18n英文单词首字母转大写
- win10无法打印网页:打印机遇到异常配置问题0x8007007e 的解决方法
- Helm和kustomize
- kcl计算机科学与技术研究生,KCL的Data Science「伦敦大学国王学院数据科学理学硕士」...
- Win10常用cmd命令学习(验证性实验)
- 整数转罗马数字(C++)