Python中字典的setdefault()方法教程
作者:Huoty 时间:2021-11-18 08:59:00
前言
在python基础知识中有说过,字典是可变的数据类型,其参数又是键对值。setdefault()方法和字典的get()方法在一些地方比较相像,都可以得到给定键对应的值。但setdefault()方法可以在字典中并不包含有给定键的情况下,为给定键设定相应的值。
Python 字典的 setdefault 方法原型如下:
dict.setdefault(key, default=None)
如果给定的 key 在字典中则返回该值,如果不在字典中,就将 key 插入到字典中,并将值设置为指定的 default 参数,default 的缺省值为 None。
使用 setdefault 方法相当于如下的操作:
if key in dict:
reurn dict[key]
else:
dict[key] = default
return default
该方法与字典的 get 方法有些相似,但有些区别。dict.get
和 dict.setdefault
方法在 key 存在于字典中时都能返回该值,在 key 不在字典中时,也都能返回缺省的值。两个方法的区别在于,当 key 不在字典中时 setdefault 方法会在字典插入缺省的键值并返回,而 get 方法只返回缺省值,不向字典中插入新的 key。
示例:
>>> dct = {}
>>> dct
{}
>>> dct["name"] = "huoty"
>>> dct
{'name': 'huoty'}
>>> dct.setdefault("name", "esenich")
'huoty'
>>> dct
{'name': 'huoty'}
>>> dct.setdefault("fname", "esenich")
'esenich'
>>> dct
{'name': 'huoty', 'fname': 'esenich'}
>>> dct.setdefault("addr")
>>> dct
{'name': 'huoty', 'fname': 'esenich', 'addr': None}
>>> dct.get("name", "xxx")
'huoty'
>>> dct
{'name': 'huoty', 'fname': 'esenich', 'addr': None}
>>> dct.get("age")
>>> dct
{'name': 'huoty', 'fname': 'esenich', 'addr': None}
>>> dct.get("age", 2)
2
>>> dct
{'name': 'huoty', 'fname': 'esenich', 'addr': None}
总结
标签:python,字典,setdefault
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Bootstrap table的使用方法
2023-09-10 13:34:47
![](https://img.aspxhome.com/file/2023/4/56254_0s.jpg)
为什么Access数据库的精髓不在VBA之中
2008-11-28 16:45:00
举例详解Python中smtplib模块处理电子邮件的使用
2023-10-08 04:46:14
asp如何创建一个PDF文件?
2009-11-14 20:53:00
解决python 输出到csv 出现多空行的情况
2022-11-09 10:27:39
![](https://img.aspxhome.com/file/2023/9/79739_0s.jpg)
PHP实现PDF转图片的方法详解
2023-05-26 19:59:51
详解tensorflow载入数据的三种方式
2023-07-22 19:35:56
![](https://img.aspxhome.com/file/2023/4/62904_0s.jpg)
PHP PDOStatement::execute讲解
2023-06-08 14:05:19
python子类如何继承父类的实例变量
2022-05-07 08:41:26
Go语言递归函数的具体实现
2023-08-05 02:35:32
Python实现微信机器人的方法
2023-01-20 17:33:26
![](https://img.aspxhome.com/file/2023/4/64714_0s.jpg)
asp和js两种方法判断远程图片是否存在
2007-09-21 17:27:00
互联网产品设计师自我介绍
2009-04-16 12:45:00
通过实例了解Python str()和repr()的区别
2022-06-01 21:37:36
Javascript的时间戳和php的时间戳转换注意事项
2023-11-19 16:12:30
js友好的表单验证程序vform
2007-08-16 13:32:00
python实现图像边缘检测
2022-03-17 15:35:11
![](https://img.aspxhome.com/file/2023/9/64339_0s.jpg)
Django 通过JS实现ajax过程详解
2023-08-17 08:00:46
设计的商业价值
2009-08-13 14:43:00
WEB页面工具之语言XML的定义
2008-05-29 11:29:00